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

Delphi控件源码

开发平台:

Delphi

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