本例效果图:



代码文件:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, ColorGrd;

type
  TForm1 = class(TForm)
    CategoryPanelGroup1: TCategoryPanelGroup;
    CategoryPanel1: TCategoryPanel;
    CategoryPanel2: TCategoryPanel;
    CategoryPanel3: TCategoryPanel;
    RadioGroup1: TRadioGroup;
    ColorGrid1: TColorGrid;
    procedure FormCreate(Sender: TObject);
    procedure ColorGrid1Change(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  CategoryPanel1.Height := ClientHeight div 2;
  CategoryPanel2.Height := CategoryPanel1.Height;
  CategoryPanel3.Height := CategoryPanel1.Height;

  CategoryPanel1.Caption := 'CPanel1';
  CategoryPanel2.Caption := 'CPanel2';
  CategoryPanel3.Caption := 'CPanel3';

  RadioGroup1.Caption := 'Color';
  with RadioGroup1.Items do
  begin
    Add('CategoryPanelGroup1.ChevronColor');
    Add('CategoryPanelGroup1.ChevronHotColor');
    Add('CategoryPanelGroup1.GradientBaseColor');
    Add('CategoryPanelGroup1.GradientColor');
    Add('CategoryPanelGroup1.Color');
    Add('CategoryPanel1.Color');
    Add('CategoryPanel2.Color');
    Add('CategoryPanel3.Color');
    Add('CategoryPanelGroup1.HeaderFont.Color');
  end;
  RadioGroup1.ItemIndex := 0;

  ColorGrid1.Align := alRight;
  ColorGrid1.Width := 48;
  ColorGrid1.GridOrdering := go2x8;
end;

procedure TForm1.ColorGrid1Change(Sender: TObject);
begin
  case RadioGroup1.ItemIndex of
    0: CategoryPanelGroup1.ChevronColor      := ColorGrid1.ForegroundColor;
    1: CategoryPanelGroup1.ChevronHotColor   := ColorGrid1.ForegroundColor;
    2: CategoryPanelGroup1.GradientBaseColor := ColorGrid1.ForegroundColor;
    3: CategoryPanelGroup1.GradientColor     := ColorGrid1.ForegroundColor;
    4: CategoryPanelGroup1.Color             := ColorGrid1.ForegroundColor;
    5: CategoryPanel1.Color                  := ColorGrid1.ForegroundColor; {刷新后显示}
    6: CategoryPanel2.Color                  := ColorGrid1.ForegroundColor; {刷新后显示}
    7: CategoryPanel3.Color                  := ColorGrid1.ForegroundColor; {刷新后显示}
    8: begin
      CategoryPanelGroup1.HeaderFont.Color := ColorGrid1.ForegroundColor;
      CategoryPanelGroup1.HeaderFont := CategoryPanelGroup1.HeaderFont; {刷新一下}
    end;
  end;
end;

end.

窗体文件:
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 207
  ClientWidth = 462
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object CategoryPanelGroup1: TCategoryPanelGroup
    Left = 0
    Top = 0
    Width = 177
    Height = 207
    VertScrollBar.Tracking = True
    HeaderFont.Charset = DEFAULT_CHARSET
    HeaderFont.Color = clWindowText
    HeaderFont.Height = -11
    HeaderFont.Name = 'Tahoma'
    HeaderFont.Style = []
    TabOrder = 0
    object CategoryPanel1: TCategoryPanel
      Top = 0
      Caption = 'CategoryPanel1'
      TabOrder = 0
    end
    object CategoryPanel2: TCategoryPanel
      Top = 200
      Caption = 'CategoryPanel2'
      TabOrder = 1
    end
    object CategoryPanel3: TCategoryPanel
      Top = 400
      Caption = 'CategoryPanel3'
      TabOrder = 2
    end
  end
  object RadioGroup1: TRadioGroup
    Left = 183
    Top = 3
    Width = 227
    Height = 198
    Caption = 'RadioGroup1'
    TabOrder = 1
  end
  object ColorGrid1: TColorGrid
    Left = 362
    Top = 24
    Width = 100
    Height = 96
    TabOrder = 2
    OnChange = ColorGrid1Change
  end
end

posted on 2008-08-14 10:15  万一  阅读(4157)  评论(0编辑  收藏  举报