⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 icomponenteditorthemepanel.pas

📁 iocopm3.04源码,一套很好的工控开发工具
💻 PAS
📖 第 1 页 / 共 5 页
字号:
      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 + -