📄 icomponenteditorthemepanel.pas
字号:
Width := FScheme1DeleteButton.Width;
OnClick := Scheme4DeleteButtonClick;
Enabled := False;
end;
//==============================================
//Scheme 5
//==============================================
FScheme5Combo := TiThemeComboBox.Create(Self);
with FScheme5Combo do
begin
Parent := Self;
Width := FScheme1Combo.Width;
Style := csOwnerDrawFixed;
OnChange := Scheme5ComboChange;
OnDropDown := Scheme5ComboDropDown;
//KYLIX TODO
{$ifndef LINUX}
OnDrawItem := ComboBoxDrawItem;
{$endif}
DropDownCount := 12;
end;
FScheme5ComboLabel := TLabel.Create(Self);
with FScheme5ComboLabel do
begin
Parent := Self;
AutoSize := True;
Caption := FScheme5Title + ':';
end;
FScheme5AddButton := TiComponentEditorButton.Create(Self);
with FScheme5AddButton do
begin
Parent := Self;
Font.Size := 12;
Caption := '+';
Font.Style := [fsBold];
Height := FScheme1AddButton.Height;
Width := FScheme1AddButton.Width;
OnClick := Scheme5AddButtonClick;
end;
FScheme5DeleteButton := TiComponentEditorButton.Create(Self);
with FScheme5DeleteButton do
begin
Parent := Self;
Caption := '-';
Font.Size := 12;
Font.Style := [fsBold];
Height := FScheme1DeleteButton.Height;
Width := FScheme1DeleteButton.Width;
Enabled := False;
OnClick := Scheme5DeleteButtonClick;
end;
FCreationComplete := True;
DoResize;
end;
//****************************************************************************************************************************************************
destructor TiComponentEditorThemePanel.Destroy;
begin
inherited;
FScheme1PropertyNames.Free;
FScheme2PropertyNames.Free;
FScheme3PropertyNames.Free;
FScheme4PropertyNames.Free;
FScheme5PropertyNames.Free;
ClearAllSchemes;
FScheme1TypeList.Free;
FScheme2TypeList.Free;
FScheme3TypeList.Free;
FScheme4TypeList.Free;
FScheme5TypeList.Free;
end;
//****************************************************************************************************************************************************
procedure TiComponentEditorThemePanel.Loaded;
begin
inherited;
DoResize;
end;
//****************************************************************************************************************************************************
procedure TiComponentEditorThemePanel.SetiComponentPreview(const Value: TWinControl);
begin
FiComponentPreview := Value;
if not Assigned(FiComponentPreview.Parent) then
begin
FiComponentPreview.Parent := FPreviewScrollBox;
end;
ResetThemePanel;
LoadFromXMLFile;
end;
//****************************************************************************************************************************************************
procedure TiComponentEditorThemePanel.ResetThemePanel;
begin
ClearSelectedSchemes;
FAcceptPreviewButton.Enabled := False;
ReCenterPreview;
end;
//****************************************************************************************************************************************************
procedure TiComponentEditorThemePanel.ScrollBoxResize(Sender: TObject);
begin
ReCenterPreview;
end;
//****************************************************************************************************************************************************
procedure TiComponentEditorThemePanel.ReCenterPreview;
begin
if Assigned(iComponentPreview) then
begin
if FiComponentPreview.Width > FPreviewScrollBox.Width then
FiComponentPreview.Left := 0
else
FiComponentPreview.Left := FPreviewScrollBox.Width div 2 - FiComponentPreview.Width div 2;
if FiComponentPreview.Height > FPreviewScrollBox.Height then
FiComponentPreview.Top := 0
else
FiComponentPreview.Top := FPreviewScrollBox.Height div 2 - FiComponentPreview.Height div 2;
end;
end;
//****************************************************************************************************************************************************
procedure TiComponentEditorThemePanel.DoResize;
begin
if not FCreationComplete then Exit;
FScheme1Combo.Top := FScheme1ComboLabel.Height + 3;
FScheme2Combo.Top := FScheme1Combo.Top + FScheme1Combo.Height + FScheme1ComboLabel.Height + 1;
FScheme3Combo.Top := FScheme2Combo.Top + FScheme2Combo.Height + FScheme1ComboLabel.Height + 1;
FScheme4Combo.Top := FScheme3Combo.Top + FScheme3Combo.Height + FScheme1ComboLabel.Height + 1;
FScheme5Combo.Top := FScheme4Combo.Top + FScheme4Combo.Height + FScheme1ComboLabel.Height + 1;
FScheme1AddButton.Top := FScheme1Combo.Top + (FScheme1Combo.Height div 2) - (FScheme1AddButton.Height div 2);
FScheme2AddButton.Top := FScheme2Combo.Top + (FScheme2Combo.Height div 2) - (FScheme2AddButton.Height div 2);
FScheme3AddButton.Top := FScheme3Combo.Top + (FScheme3Combo.Height div 2) - (FScheme3AddButton.Height div 2);
FScheme4AddButton.Top := FScheme4Combo.Top + (FScheme4Combo.Height div 2) - (FScheme4AddButton.Height div 2);
FScheme5AddButton.Top := FScheme5Combo.Top + (FScheme5Combo.Height div 2) - (FScheme5AddButton.Height div 2);
FScheme1DeleteButton.Top := FScheme1AddButton.Top;
FScheme2DeleteButton.Top := FScheme2AddButton.Top;
FScheme3DeleteButton.Top := FScheme3AddButton.Top;
FScheme4DeleteButton.Top := FScheme4AddButton.Top;
FScheme5DeleteButton.Top := FScheme5AddButton.Top;
FScheme1ComboLabel.Top := FScheme1Combo.Top - FScheme1ComboLabel.Height;
FScheme2ComboLabel.Top := FScheme2Combo.Top - FScheme1ComboLabel.Height;
FScheme3ComboLabel.Top := FScheme3Combo.Top - FScheme1ComboLabel.Height;
FScheme4ComboLabel.Top := FScheme4Combo.Top - FScheme1ComboLabel.Height;
FScheme5ComboLabel.Top := FScheme5Combo.Top - FScheme1ComboLabel.Height;
//-------------------------------------------------------------------------------------------------------------
FScheme1DeleteButton.Left := Width - ButtonOffset - FScheme1DeleteButton.Width;
FScheme1AddButton.Left := FScheme1DeleteButton.Left - FScheme1AddButton.Width;
FScheme1Combo.Left := FScheme1AddButton.Left - ButtonOffset - FScheme1Combo.Width;
FScheme2Combo.Left := FScheme1Combo.Left;
FScheme3Combo.Left := FScheme1Combo.Left;
FScheme4Combo.Left := FScheme1Combo.Left;
FScheme5Combo.Left := FScheme1Combo.Left;
FScheme2AddButton.Left := FScheme1AddButton.Left;
FScheme3AddButton.Left := FScheme1AddButton.Left;
FScheme4AddButton.Left := FScheme1AddButton.Left;
FScheme5AddButton.Left := FScheme1AddButton.Left;
FScheme2DeleteButton.Left := FScheme1DeleteButton.Left;
FScheme3DeleteButton.Left := FScheme1DeleteButton.Left;
FScheme4DeleteButton.Left := FScheme1DeleteButton.Left;
FScheme5DeleteButton.Left := FScheme1DeleteButton.Left;
FScheme1ComboLabel.Left := FScheme1Combo.Left;
FScheme2ComboLabel.Left := FScheme1Combo.Left;
FScheme3ComboLabel.Left := FScheme1Combo.Left;
FScheme4ComboLabel.Left := FScheme1Combo.Left;
FScheme5ComboLabel.Left := FScheme1Combo.Left;
FPreviewGroupBox.Width := FScheme1Combo.Left - 10;
FPreviewGroupBox.Height := Height;
FPreviewScrollBox.Left := 3;
FPreviewScrollBox.Top := 20;
FPreviewScrollBox.Width := FPreviewGroupBox.Width - 6;
FPreviewScrollBox.Height := FPreviewGroupBox.Height - 23;
FPreviewErrorLabel1.Width := FPreviewScrollBox.Width - 5;
FPreviewErrorLabel2.Width := FPreviewScrollBox.Width - 5;
FPreviewErrorLabel1.Top := FPreviewScrollBox.Height div 2 - 3*FPreviewErrorLabel1.Height;
FPreviewErrorLabel2.Top := FPreviewScrollBox.Height div 2;
FAcceptPreviewButton.Left := Width - FAcceptPreviewButton.Width - ButtonOffset;
FAcceptPreviewButton.Top := Height - FAcceptPreviewButton.Height - 5;
//-------------------------------------------------------------------------------------------------------------
FUserDefinedShape.Width := FUserDefinedLabel.Height;
FUserDefinedShape.Height := FUserDefinedShape.Width;
FPreDefinedShape.Width := FUserDefinedShape.Width;
FPreDefinedShape.Height := FUserDefinedShape.Width;
FUserDefinedShape.Left := FScheme1Combo.Left;
FPreDefinedShape.Left := FScheme1Combo.Left;
FLegendLabel.Left := FScheme1Combo.Left;
FUserDefinedLabel.Left := FUserDefinedShape.Left + FUserDefinedShape.Width + 3;
FPreDefinedLabel.Left := FPreDefinedShape.Left + FPreDefinedShape.Width + 3;
FUserDefinedShape.Top := Height - FUserDefinedShape.Height - 5;
FUserDefinedLabel.Top := FUserDefinedShape.Top;
FPreDefinedShape.Top := FUserDefinedShape.Top - 2 - FPreDefinedShape.Height;
FPreDefinedLabel.Top := FPreDefinedShape.Top;
FLegendLabel.Top := FPreDefinedShape.Top - FLegendLabel.Height - 5;
end;
//****************************************************************************************************************************************************
procedure TiComponentEditorThemePanel.AcceptPreviewButtonClick(Sender: TObject);
begin
SetParentsToTopMost(Owner as TWinControl);
if Assigned(FOnAcceptChanges) then FOnAcceptChanges(Self);
FAcceptPreviewButton.Enabled := False;
FScheme1Combo.SetFocus;
end;
//****************************************************************************************************************************************************
procedure TiComponentEditorThemePanel.ClearAllSchemes;
begin
while FScheme1TypeList.Count <> 0 do begin FScheme1TypeList.Objects[0].Free; FScheme1TypeList.Delete(0); end;
while FScheme2TypeList.Count <> 0 do begin FScheme2TypeList.Objects[0].Free; FScheme2TypeList.Delete(0); end;
while FScheme3TypeList.Count <> 0 do begin FScheme3TypeList.Objects[0].Free; FScheme3TypeList.Delete(0); end;
while FScheme4TypeList.Count <> 0 do begin FScheme4TypeList.Objects[0].Free; FScheme4TypeList.Delete(0); end;
while FScheme5TypeList.Count <> 0 do begin FScheme5TypeList.Objects[0].Free; FScheme5TypeList.Delete(0); end;
end;
//****************************************************************************************************************************************************
procedure TiComponentEditorThemePanel.SetScheme1PropertyNames(const Value: TStringList);begin FScheme1PropertyNames.Assign(Value);end;
procedure TiComponentEditorThemePanel.SetScheme2PropertyNames(const Value: TStringList);begin FScheme2PropertyNames.Assign(Value);end;
procedure TiComponentEditorThemePanel.SetScheme3PropertyNames(const Value: TStringList);begin FScheme3PropertyNames.Assign(Value);end;
procedure TiComponentEditorThemePanel.SetScheme4PropertyNames(const Value: TStringList);begin FScheme4PropertyNames.Assign(Value);end;
procedure TiComponentEditorThemePanel.SetScheme5PropertyNames(const Value: TStringList);begin FScheme5PropertyNames.Assign(Value);end;
//****************************************************************************************************************************************************
procedure TiComponentEditorThemePanel.SetScheme1Show(const Value: Boolean);
begin
FScheme1Show := Value;
FScheme1Combo.Visible := Value;
FScheme1ComboLabel.Visible := Value;
FScheme1AddButton.Visible := Value;
FScheme1DeleteButton.Visible := Value;
end;
//****************************************************************************************************************************************************
procedure TiComponentEditorThemePanel.SetScheme2Show(const Value: Boolean);
begin
FScheme2Show := Value;
FScheme2Combo.Visible := Value;
FScheme2ComboLabel.Visible := Value;
FScheme2AddButton.Visible := Value;
FScheme2DeleteButton.Visible := Value;
end;
//****************************************************************************************************************************************************
procedure TiComponentEditorThemePanel.SetScheme3Show(const Value: Boolean);
begin
FScheme3Show := Value;
FScheme3Combo.Visible := Value;
FScheme3ComboLabel.Visible := Value;
FScheme3AddButton.Visible := Value;
FScheme3DeleteButton.Visible := Value;
end;
//****************************************************************************************************************************************************
procedure TiComponentEditorThemePanel.SetScheme4Show(const Value: Boolean);
begin
FScheme4Show := Value;
FScheme4Combo.Visible := Value;
FScheme4ComboLabel.Visible := Value;
FScheme4AddButton.Visible := Value;
FScheme4DeleteButton.Visible := Value;
end;
//****************************************************************************************************************************************************
procedure TiComponentEditorThemePanel.SetScheme5Show(const Value: Boolean);
begin
FScheme5Show := Value;
FScheme5Combo.Visible := Value;
FScheme5ComboLabel.Visible := Value;
FScheme5AddButton.Visible := Value;
FScheme5DeleteButton.Visible := Value;
end;
//****************************************************************************************************************************************************
procedure TiComponentEditorThemePanel.SetScheme1EnableModify(const Value: Boolean);
begin
FScheme1EnableModify := Value;
FScheme1AddButton.Enabled := Value;
FScheme1DeleteButton.Enabled := Value;
end;
//****************************************************************************************************************************************************
procedure TiComponentEditorThemePanel.SetScheme2EnableModify(const Value: Boolean);
begin
FScheme2EnableModify := Value;
FScheme2AddButton.Enabled := Value;
FScheme2DeleteButton.Enabled := Value;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -