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

📄 stylessimpledemoassign.pas

📁 DevExpress ExpressQuantumGrid Suite v5.9 Full Source
💻 PAS
字号:
unit StylesSimpleDemoAssign;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, cxStyles;

type
  TStylesSimpleDemoAssignForm = class(TForm)
    Label1: TLabel;
    ComboBox1: TComboBox;
    Label2: TLabel;
    ComboBox2: TComboBox;
    Label3: TLabel;
    ComboBox3: TComboBox;
    Label4: TLabel;
    ComboBox4: TComboBox;
    Label5: TLabel;
    ComboBox5: TComboBox;
    Label6: TLabel;
    ComboBox6: TComboBox;
    Label7: TLabel;
    ComboBox7: TComboBox;
    Label8: TLabel;
    ComboBox8: TComboBox;
    Label9: TLabel;
    ComboBox9: TComboBox;
    Label10: TLabel;
    ComboBox10: TComboBox;
    btnRestore: TButton;
    Label11: TLabel;
    ComboBox11: TComboBox;
    Label12: TLabel;
    ComboBox12: TComboBox;
    Label14: TLabel;
    ComboBox14: TComboBox;
    Label13: TLabel;
    ComboBox13: TComboBox;
    procedure ComboBoxChange(Sender: TObject);
    procedure btnRestoreClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    RestoreDefaults: TNotifyEvent;
    function GetCurrentStyle(AGridItemID: integer): TcxStyle;
    procedure SetCurrentStyle(const AStyle: TcxStyle; AGridItemID: integer);
    procedure InitComboBox(AComboBox: TComboBox);
    procedure RefreshBinding;
  public
    { Public declarations }
  end;

  function ChangeStyleBinding(ACallback: TNotifyEvent): boolean;


implementation

uses
  StylesSimpleDemoMain, StylesSimpleDemoData;

{$R *.dfm}
type
  TcxStyles = (sContent, sContentEven, sContentOdd, sBackground, sFilterBox, sFooter, sGroup,
  sGroupByBox, sHeader, sIndicator, sInactive, sIncSearch, sPreview, sSelection);

function ChangeStyleBinding(ACallback: TNotifyEvent): boolean;
begin
  with TStylesSimpleDemoAssignForm.Create(Application) do
  try
    RestoreDefaults := ACallback;
    Result := ShowModal = mrOK;
  finally
    Free;
  end;
end;


function TStylesSimpleDemoAssignForm.GetCurrentStyle(AGridItemID: integer): TcxStyle;
begin
  Result := nil;
  with StylesSimpleDemoMainForm do
  case TcxStyles(AGridItemID) of
    sContent:
      Result := tvPersons.Styles.Content;
    sContentEven:
      Result := tvPersons.Styles.ContentEven;
    sContentOdd:
      Result := tvPersons.Styles.ContentOdd;
    sBackground:
      Result := tvPersons.Styles.Background;
    sFooter:
      Result := tvPersons.Styles.Footer;
    sFilterBox:
      Result := tvPersons.Styles.FilterBox;
    sGroup:
      Result := tvPersons.Styles.Group;
    sGroupByBox:
      Result := tvPersons.Styles.GroupByBox;
    sHeader:
      Result := tvPersons.Styles.Header;
    sIndicator:
      Result := tvPersons.Styles.Indicator;
    sInactive:
      Result := tvPersons.Styles.Inactive;
    sIncSearch:
      Result := tvPersons.Styles.IncSearch;
    sPreview:
      Result := tvPersons.Styles.Preview;
    sSelection:
       Result := tvPersons.Styles.Selection;
  end;
end;

procedure TStylesSimpleDemoAssignForm.InitComboBox(AComboBox: TComboBox);
var
  I: integer;
  s, CurrentStyle: string;
begin
  with AComboBox, StylesSimpleDemoMainDM do
  begin
    Clear;
    CurrentStyle := '';
    for I := 0 to StyleRepository.Count - 1 do
    begin
      s := StyleRepository.Items[I].Name;
      Items.AddObject(s, StyleRepository.Items[I]);
      if StyleRepository.Items[I] = GetCurrentStyle(AComboBox.Tag) then
        CurrentStyle := s;
    end;
    ItemIndex := Items.IndexOf(CurrentStyle);
 end;
end;

procedure TStylesSimpleDemoAssignForm.ComboBoxChange(Sender: TObject);
begin
  with TComboBox(Sender) do
    SetCurrentStyle(TcxStyle(Items.Objects[ItemIndex]), Tag);
end;

procedure TStylesSimpleDemoAssignForm.SetCurrentStyle(const AStyle: TcxStyle; AGridItemID: integer);
begin
  with StylesSimpleDemoMainForm do
    case TcxStyles(AGridItemID) of
      sContent:
        tvPersons.Styles.Content := AStyle;
      sContentEven:
        tvPersons.Styles.ContentEven := AStyle;
      sContentOdd:
        tvPersons.Styles.ContentOdd := AStyle;
      sBackground:
        tvPersons.Styles.Background := AStyle;
      sFooter:
        tvPersons.Styles.Footer := AStyle;
      sFilterBox:
        tvPersons.Styles.FilterBox := AStyle;
      sGroup:
        tvPersons.Styles.Group := AStyle;
      sGroupByBox:
        tvPersons.Styles.GroupByBox := AStyle;
      sHeader:
        tvPersons.Styles.Header := AStyle;
      sIndicator:
        tvPersons.Styles.Indicator := AStyle;
      sInactive:
        tvPersons.Styles.Inactive := AStyle;
      sIncSearch:
        tvPersons.Styles.IncSearch := AStyle;
      sPreview:
        tvPersons.Styles.Preview := AStyle;
      sSelection:
        tvPersons.Styles.Selection := AStyle;
    end;
end;

procedure TStylesSimpleDemoAssignForm.btnRestoreClick(Sender: TObject);
begin
  if Assigned(RestoreDefaults) then RestoreDefaults(Sender);
  RefreshBinding;
end;


procedure TStylesSimpleDemoAssignForm.RefreshBinding;
var
  I: Integer;
begin
  for I := 0 to ComponentCount - 1 do
    if Components[I] is TComboBox then
      InitComboBox(TComboBox(Components[I]));
end;

procedure TStylesSimpleDemoAssignForm.FormCreate(Sender: TObject);
begin
  Position := poScreenCenter;
  RefreshBinding;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -