home *** CD-ROM | disk | FTP | other *** search
/ Delphi 4 Bible / Delphi_4_Bible_Tom_Swan_IDG_Books_1998.iso / source / DDECOLOR / SERMAIN.PAS < prev   
Pascal/Delphi Source File  |  1998-03-13  |  2KB  |  78 lines

  1. unit Sermain;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, SysUtils, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, DdeMan;
  8.  
  9. type
  10.   TMainForm = class(TForm)
  11.     RedLabel: TLabel;
  12.     GreenLabel: TLabel;
  13.     BlueLabel: TLabel;
  14.     RedSB: TScrollBar;
  15.     GreenSB: TScrollBar;
  16.     BlueSB: TScrollBar;
  17.     RedEdit: TEdit;
  18.     GreenEdit: TEdit;
  19.     BlueEdit: TEdit;
  20.     Bevel1: TBevel;
  21.     BitBtn1: TBitBtn;
  22.     ColorServer: TDdeServerConv;
  23.     ColorItem: TDdeServerItem;
  24.     procedure FormCreate(Sender: TObject);
  25.     procedure SBChange(Sender: TObject);
  26.     procedure EditChange(Sender: TObject);
  27.   private
  28.     EditControls: array[0 .. 2] of TEdit;
  29.     ScrollBars: array[0 .. 2] of TScrollBar;
  30.     procedure UpdateColor;
  31.   public
  32.     ColorResult: TColor;  { Selected color }
  33.   end;
  34.  
  35. var
  36.   MainForm: TMainForm;
  37.  
  38. implementation
  39.  
  40. {$R *.DFM}
  41.  
  42. {- Update ColorResult using scrollbar positions. Send
  43. color information to any DDE client applications. }
  44. procedure TMainForm.UpdateColor;
  45. begin
  46.   ColorResult := RGB(
  47.     RedSB.Position, GreenSB.Position, BlueSB.Position);
  48.   ColorItem.Text := ColorToString(ColorResult);
  49. end;
  50.  
  51. {- Initialize Edit and Scrollbar arrays for easy access }
  52. procedure TMainForm.FormCreate(Sender: TObject);
  53. begin
  54.   EditControls[0] := RedEdit;
  55.   EditControls[1] := GreenEdit;
  56.   EditControls[2] := BlueEdit;
  57.   ScrollBars[0] := RedSB;
  58.   ScrollBars[1] := GreenSB;
  59.   ScrollBars[2] := BlueSB;
  60. end;
  61.  
  62. {- Update values in Edit boxes for ScrollBar changes }
  63. procedure TMainForm.SBChange(Sender: TObject);
  64. begin
  65.   with Sender as TScrollBar do
  66.     EditControls[Tag].Text := IntToStr(Position);
  67.   UpdateColor;
  68. end;
  69.  
  70. {- Update scrollbar positions for Edit box changes }
  71. procedure TMainForm.EditChange(Sender: TObject);
  72. begin
  73.   with Sender as TEdit do
  74.     ScrollBars[Tag].Position := StrToInt(Text);
  75. end;
  76.  
  77. end.
  78.