colordemou.pas
上传用户:hylc_2004
上传日期:2014-01-23
资源大小:46800k
文件大小:7k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit colordemou;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5.   StdCtrls, DBGrids, fcColorCombo, fcCombo, ExtCtrls, Mask, ComCtrls, fcLabel, fcCommon,
  6.   DBCtrls, Db, DBTables, Grids, fcDemoRichEdit;
  7. type
  8.   TColorDemoForm = class(TForm)
  9.     PageControl1: TPageControl;
  10.     TabSheet1: TTabSheet;
  11.     Panel1: TPanel;
  12.     fcColorCombo1: TfcColorCombo;
  13.     TabSheet2: TTabSheet;
  14.     fcColorList3: TfcColorList;
  15.     fcColorList2: TfcColorList;
  16.     fcColorList4: TfcColorList;
  17.     fcColorList1: TfcColorList;
  18.     fcLabel1: TfcLabel;
  19.     fcLabel2: TfcLabel;
  20.     fcLabel3: TfcLabel;
  21.     fcLabel4: TfcLabel;
  22.     fcLabel5: TfcLabel;
  23.     fcLabel6: TfcLabel;
  24.     fcLabel7: TfcLabel;
  25.     Panel2: TPanel;
  26.     ColorListBoxOptions: TGroupBox;
  27.     CheckBox5: TCheckBox;
  28.     CheckBox4: TCheckBox;
  29.     CheckBox3: TCheckBox;
  30.     CheckBox2: TCheckBox;
  31.     CheckBox1: TCheckBox;
  32.     UpDown1: TUpDown;
  33.     UpDown2: TUpDown;
  34.     DropDownCountEdit: TEdit;
  35.     DropDownWidthEdit: TEdit;
  36.     ItemHeightEdit: TEdit;
  37.     UpDown4: TUpDown;
  38.     itemheightlabel: TLabel;
  39.     dropdowncountlabel: TLabel;
  40.     dropdownwidthlabel: TLabel;
  41.     DropDownTitle: TLabel;
  42.     Bevel1: TBevel;
  43.     Panel3: TPanel;
  44.     ShowMatchCheckbox: TCheckBox;
  45.     ShowButtonCheckbox: TCheckBox;
  46.     ButtonStyleRadio: TRadioGroup;
  47.     ColorAlignmentRadio: TRadioGroup;
  48.     AppearanceTitle: TLabel;
  49.     Bevel2: TBevel;
  50.     ColorWidthEdit: TEdit;
  51.     Colorwidthlabel: TLabel;
  52.     UpDown3: TUpDown;
  53.     SortByRadio: TRadioGroup;
  54.     Shape1: TShape;
  55.     CheckBox6: TCheckBox;
  56.     fcDemoRichEdit1: TfcDemoRichEdit;
  57.     procedure CheckBox1Click(Sender: TObject);
  58.     procedure SortByRadioClick(Sender: TObject);
  59.     procedure ShowButtonCheckboxClick(Sender: TObject);
  60.     procedure ShowMatchCheckboxClick(Sender: TObject);
  61.     procedure ButtonStyleRadioClick(Sender: TObject);
  62.     procedure fcColorCombo1DropDown(Sender: TObject);
  63.     procedure DropDownCountEditExit(Sender: TObject);
  64.     procedure DropDownWidthEditExit(Sender: TObject);
  65.     procedure ColorWidthEditExit(Sender: TObject);
  66.     procedure ItemHeightEditExit(Sender: TObject);
  67.     procedure UpDown3Click(Sender: TObject; Button: TUDBtnType);
  68.     procedure UpDown4Click(Sender: TObject; Button: TUDBtnType);
  69.     procedure ColorAlignmentRadioClick(Sender: TObject);
  70.     procedure fcColorCombo1Change(Sender: TObject);
  71.     procedure CheckBox6Click(Sender: TObject);
  72.   private
  73.     { Private declarations }
  74.   public
  75.     { Public declarations }
  76.   end;
  77. var
  78.   ColorDemoForm: TColorDemoForm;
  79. implementation
  80. {$R *.DFM}
  81. function StripTrailing(s: string): string;
  82.   var len: integer;
  83. begin
  84.   len := length(s);
  85.   while (len > 0) and (s[len] in [' ', #9]) do len := len - 1;
  86.   SetLength(s, len);
  87.   result:= s;
  88. end;
  89. procedure TColorDemoForm.CheckBox1Click(Sender: TObject);
  90. begin
  91.    with (Sender as TCheckBox),fcColorCombo1.ColorListOptions do begin
  92.       if Checked then begin
  93.          case Tag of
  94.            1:Options := Options + [ccoShowCustomColors];
  95.            2:Options := Options + [ccoShowSystemColors];
  96.            3:Options := Options + [ccoShowStandardColors];
  97.            4:Options := Options + [ccoShowGreyScale];
  98.            5:Options := Options + [ccoShowColorNone];
  99.          end;
  100.       end
  101.       else begin
  102.          case Tag of
  103.            1:Options := Options - [ccoShowCustomColors];
  104.            2:Options := Options - [ccoShowSystemColors];
  105.            3:Options := Options - [ccoShowStandardColors];
  106.            4:Options := Options - [ccoShowGreyScale];
  107.            5:Options := Options - [ccoShowColorNone];
  108.          end;
  109.       end;
  110.    end;
  111.    fcColorCombo1.ListBox.AllColors.Clear;
  112.    fcColorCombo1.RefreshList;
  113.    fcColorCombo1.ItemIndex := -1;
  114.    fcColorCombo1.Text:='';
  115. end;
  116. procedure TColorDemoForm.SortByRadioClick(Sender: TObject);
  117. begin
  118.   case (Sender as TRadioGroup).ItemIndex of
  119.     0:fcColorCombo1.ColorListOptions.SortBy := csoNone;
  120.     1:fcColorCombo1.ColorListOptions.SortBy := csoByRGB;
  121.     2:fcColorCombo1.ColorListOptions.SortBy := csoByName;
  122.     3:fcColorCombo1.ColorListOptions.SortBy := csoByIntensity;
  123.   end;
  124. end;
  125. procedure TColorDemoForm.ShowButtonCheckboxClick(Sender: TObject);
  126. begin
  127.   if (Sender as TCheckBox).Checked then
  128.     fcColorCombo1.ShowButton := True
  129.   else fcColorCombo1.ShowButton := False;
  130. end;
  131. procedure TColorDemoForm.ShowMatchCheckboxClick(Sender: TObject);
  132. begin
  133.   if (Sender as TCheckBox).Checked then
  134.     fcColorCombo1.ShowMatchText := True
  135.   else fcColorCombo1.ShowMatchText := False;
  136. end;
  137. procedure TColorDemoForm.ButtonStyleRadioClick(Sender: TObject);
  138. begin
  139.   case (Sender as TRadioGroup).ItemIndex of
  140.     0:fcColorCombo1.ButtonStyle := cbsEllipsis;
  141.     1:fcColorCombo1.ButtonStyle := cbsDownArrow;
  142.   end;
  143. end;
  144. procedure TColorDemoForm.fcColorCombo1DropDown(Sender: TObject);
  145. begin
  146.  with (Sender as TfcColorCombo) do begin
  147.    DropDownCount := StrToInt(StripTrailing(DropDownCountEdit.Text));
  148.    DropDownWidth := StrToInt(StripTrailing(DropDownWidthEdit.Text));
  149.    ColorListOptions.ColorWidth := StrToInt(StripTrailing(ColorWidthEdit.Text));
  150.    ColorListOptions.ItemHeight := StrToInt(StripTrailing(ItemHeightEdit.Text));
  151.    ListBox.ItemHeight := ColorListOptions.ItemHeight;
  152.    ListBox.ColorWidth := ColorListOptions.ColorWidth;
  153.  end;
  154. end;
  155. procedure TColorDemoForm.DropDownCountEditExit(Sender: TObject);
  156. begin
  157.   if StrToIntDef((Sender as TEdit).Text,UpDown2.Max+1) > UpDown2.Max then
  158.      (Sender as TEdit).Text := IntToStr(UpDown2.Max);
  159. end;
  160. procedure TColorDemoForm.DropDownWidthEditExit(Sender: TObject);
  161. begin
  162.   if StrToIntDef((Sender as TEdit).Text,UpDown1.Max+1) > UpDown1.Max then
  163.      (Sender as TEdit).Text := IntToStr(UpDown1.Max);
  164. end;
  165. procedure TColorDemoForm.ColorWidthEditExit(Sender: TObject);
  166. begin
  167.   if StrToIntDef((Sender as TEdit).Text,UpDown3.Max+1) > UpDown3.Max then
  168.      (Sender as TEdit).Text := IntToStr(UpDown3.Max);
  169.    fcColorCombo1.ColorListOptions.ColorWidth := StrToInt(StripTrailing(ColorWidthEdit.Text));
  170.    fcColorCombo1.ListBox.ColorWidth := fcColorCombo1.ColorListOptions.ColorWidth;
  171.    fcColorCombo1.Invalidate;
  172. end;
  173. procedure TColorDemoForm.ItemHeightEditExit(Sender: TObject);
  174. begin
  175.   if StrToIntDef((Sender as TEdit).Text,UpDown4.Max+1) > UpDown4.Max then
  176.      (Sender as TEdit).Text := IntToStr(UpDown4.Max);
  177.    fcColorCombo1.ColorListOptions.ItemHeight := StrToInt(StripTrailing(ItemHeightEdit.Text));
  178.    fcColorCombo1.ListBox.ItemHeight := fcColorCombo1.ColorListOptions.ItemHeight;
  179.    fcColorCombo1.Invalidate;
  180. end;
  181. procedure TColorDemoForm.UpDown3Click(Sender: TObject; Button: TUDBtnType);
  182. begin
  183.    ColorWidthEditExit(ColorWidthEdit);
  184. end;
  185. procedure TColorDemoForm.UpDown4Click(Sender: TObject; Button: TUDBtnType);
  186. begin
  187.    ItemHeightEditExit(ItemHeightEdit);
  188. end;
  189. procedure TColorDemoForm.ColorAlignmentRadioClick(Sender: TObject);
  190. begin
  191.   case (Sender as TRadioGroup).ItemIndex of
  192.     0:fcColorCombo1.ColorAlignment := taLeftJustify;
  193.     1:fcColorCombo1.ColorAlignment := taRightJustify;
  194.   end;
  195. end;
  196. procedure TColorDemoForm.fcColorCombo1Change(Sender: TObject);
  197. begin
  198.   Shape1.Brush.Color := (Sender as TfcColorCombo).SelectedColor;
  199. end;
  200. procedure TColorDemoForm.CheckBox6Click(Sender: TObject);
  201. begin
  202.   if (Sender as TCheckBox).Checked then
  203.     fcColorCombo1.AutoDropDown := True
  204.   else fcColorCombo1.AutoDropDown := False;
  205. end;
  206. end.