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

Delphi控件源码

开发平台:

Delphi

  1. unit IntfScrollF;
  2. interface
  3. uses
  4.   SysUtils, Windows, Messages, Classes, Graphics, Controls,
  5.   Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls, Buttons,
  6.   IntfColSel;
  7. type
  8.   TFormScroll = class(TForm, IColorSelect)
  9.     ScrollBarRed: TScrollBar;
  10.     ScrollBarGreen: TScrollBar;
  11.     ScrollBarBlue: TScrollBar;
  12.     LabelRed: TLabel;
  13.     LabelGreen: TLabel;
  14.     LabelBlue: TLabel;
  15.     Shape1: TShape;
  16.     Shape2: TShape;
  17.     Shape3: TShape;
  18.     Label1: TLabel;
  19.     Label2: TLabel;
  20.     LabelScroll: TLabel;
  21.     TrackBar1: TTrackBar;
  22.     Panel1: TPanel;
  23.     sbRed: TSpeedButton;
  24.     sbBlue: TSpeedButton;
  25.     sbGreen: TSpeedButton;
  26.     BitBtn1: TBitBtn;
  27.     BitBtn2: TBitBtn;
  28.     procedure ScrollBarsScroll(Sender: TObject; ScrollCode: TScrollCode;
  29.       var ScrollPos: Integer);
  30.     procedure TrackBar1Change(Sender: TObject);
  31.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  32.     procedure sbRedClick(Sender: TObject);
  33.     procedure sbBlueClick(Sender: TObject);
  34.     procedure sbGreenClick(Sender: TObject);
  35.   private
  36.     procedure SetSelColor (Col: TColor);
  37.     function GetSelColor: TColor;
  38.   public
  39.     procedure ApplyClick (Sender: TObject);
  40.     function Display (Modal: Boolean = True): Boolean;
  41.   published
  42.     property SelectedColor: TColor
  43.       read GetSelColor write SetSelColor;
  44.   end;
  45. implementation
  46. {$R *.DFM}
  47. procedure TFormScroll.ScrollBarsScroll(Sender: TObject;
  48.   ScrollCode: TScrollCode; var ScrollPos: Integer);
  49. begin
  50.   (Sender as TScrollBar).Hint := IntToStr(ScrollPos);
  51.   Shape1.Brush.Color := RGB (ScrollBarRed.Position,
  52.     ScrollBarGreen.Position, ScrollBarBlue.Position);
  53.   Shape2.Pen.Color := RGB (ScrollBarRed.Position,
  54.     ScrollBarGreen.Position, ScrollBarBlue.Position);
  55. end;
  56. procedure TFormScroll.TrackBar1Change(Sender: TObject);
  57. begin
  58.   LabelScroll.Caption := 'Scroll by ' + IntToStr(TrackBar1.Position);
  59.   ScrollBarGreen.LargeChange := TrackBar1.Position;
  60.   ScrollBarRed.LargeChange := TrackBar1.Position;
  61.   ScrollBarBlue.LargeChange := TrackBar1.Position;
  62. end;
  63. procedure TFormScroll.FormClose(Sender: TObject; var Action: TCloseAction);
  64. begin
  65.   // used by the modeless form
  66.   Action := caFree;
  67. end;
  68. procedure TFormScroll.ApplyClick(Sender: TObject);
  69. begin
  70.   // set the color of the main form
  71.   Application.MainForm.Color := SelectedColor;
  72. end;
  73. procedure TFormScroll.sbRedClick(Sender: TObject);
  74. begin
  75.   SelectedColor := clRed;
  76. end;
  77. // set and get properties
  78. function TFormScroll.GetSelColor: TColor;
  79. begin
  80.   Result := RGB (ScrollBarRed.Position,
  81.     ScrollBarGreen.Position, ScrollBarBlue.Position);
  82. end;
  83. procedure TFormScroll.SetSelColor (Col: TColor);
  84. var
  85.   RGBCol: Integer;
  86. begin
  87.   RGBCol := ColorToRGB (Col);
  88.   ScrollBarRed.Position := GetRValue (RGBCol);
  89.   ScrollBarGreen.Position := GetGValue (RGBCol);
  90.   ScrollBarBlue.Position := GetBValue (RGBCol);
  91.   Shape1.Brush.Color := Col;
  92.   Shape2.Pen.Color := Col;
  93. end;
  94. procedure TFormScroll.sbBlueClick(Sender: TObject);
  95. begin
  96.   SelectedColor := clBlue;
  97. end;
  98. procedure TFormScroll.sbGreenClick(Sender: TObject);
  99. begin
  100.   SelectedColor := clGreen;
  101. end;
  102. function TFormScroll.Display(Modal: Boolean): Boolean;
  103. begin
  104.   Result := True; // default
  105.   if Modal then
  106.     Result := (ShowModal = mrOK)
  107.   else
  108.   begin
  109.     BitBtn1.Caption := 'Apply';
  110.     BitBtn1.OnClick := ApplyClick;
  111.     BitBtn2.Kind := bkClose;
  112.     Show;
  113.   end;
  114. end;
  115. initialization
  116.   RegisterColorSelect (TFormScroll);
  117. end.