IntfSimple.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:2k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit IntfSimple;
  2. interface
  3. uses
  4.   SysUtils, Windows, Messages, Classes, Graphics, Controls,
  5.   Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls, Buttons, IntfColSel,
  6.   ColorGrd;
  7. type
  8.   TFormSimpleColor = class(TForm, IColorSelect)
  9.     BitBtn1: TBitBtn;
  10.     BitBtn2: TBitBtn;
  11.     ColorGrid1: TColorGrid;
  12.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  13.   private
  14.     procedure SetSelColor (Col: TColor);
  15.     function GetSelColor: TColor;
  16.   public
  17.     procedure ApplyClick (Sender: TObject);
  18.     function Display (Modal: Boolean = True): Boolean;
  19.   published
  20.     property SelectedColor: TColor
  21.       read GetSelColor write SetSelColor;
  22.   end;
  23. implementation
  24. {$R *.DFM}
  25. procedure TFormSimpleColor.FormClose(Sender: TObject; var Action: TCloseAction);
  26. begin
  27.   // used by the modeless form
  28.   Action := caFree;
  29. end;
  30. procedure TFormSimpleColor.ApplyClick(Sender: TObject);
  31. begin
  32.   // set the color of the main form
  33.   Application.MainForm.Color := SelectedColor;
  34. end;
  35. // set and get properties
  36. function TFormSimpleColor.GetSelColor: TColor;
  37. begin
  38.   Result := ColorGrid1.ForegroundColor;
  39. end;
  40. procedure TFormSimpleColor.SetSelColor (Col: TColor);
  41. begin
  42.   ColorGrid1.ForegroundIndex :=
  43.     ColorGrid1.ColorToIndex(Col)
  44. end;
  45. function TFormSimpleColor.Display(Modal: Boolean): Boolean;
  46. begin
  47.   Result := True; // default
  48.   if Modal then
  49.     Result := (ShowModal = mrOK)
  50.   else
  51.   begin
  52.     BitBtn1.Caption := 'Apply';
  53.     BitBtn1.OnClick := ApplyClick;
  54.     BitBtn2.Kind := bkClose;
  55.     Show;
  56.   end;
  57. end;
  58. initialization
  59.   RegisterColorSelect (TFormSimpleColor);
  60. end.