home *** CD-ROM | disk | FTP | other *** search
/ Chip: Shareware for Win 95 / Chip-Shareware-Win95.bin / ostatni / delphi / ruzne / rzcomps.exe / DEMO / PANELFRM.PA_ / PANELFRM.PA
Text File  |  1996-10-18  |  6KB  |  234 lines

  1. {===============================================================================
  2.   RzPnlEdt Unit
  3.  
  4.   This unit implements a component editor for the RzPanel component. This
  5.   unit defines the TRzPanelEditor class and the TRzPanelEditDlg class. The
  6.   TRzPanelEditor displays the TRzPanelEditDlg form when the component is
  7.   double-clicked or the first context menu item is chosen. The form provides a
  8.   more visual way of editing the properties of the RzPanel component with
  9.   immediate visual feedback.
  10.  
  11.   Copyright ⌐ 1995-1996 by Raize Software Solutions, Inc.
  12. ===============================================================================}
  13.  
  14. unit Panelfrm;
  15.  
  16. interface
  17.  
  18. uses
  19.   Forms, Controls, Classes, Graphics, StdCtrls, WinTypes, DsgnIntf, ExtCtrls,
  20.   RzCmboBx, RzPanel, RzTrkBar, RzLabel, RzRadGrp;
  21.  
  22. type
  23.   TFrmPanelEditor = class(TForm)
  24.     GrpBorder: TGroupBox;
  25.     LblOuter: TLabel;
  26.     LblInner: TLabel;
  27.     CbxOuter: TComboBox;
  28.     CbxInner: TComboBox;
  29.     GrpWidth: TGroupBox;
  30.     TrkWidth: TRzTrackBar;
  31.     GrpPreview: TGroupBox;
  32.     CbxBorderColor: TRzColorComboBox;
  33.     Label1: TLabel;
  34.     GrpBorderSides: TGroupBox;
  35.     GrpFrameSides: TGroupBox;
  36.     ChkLeftBorder: TCheckBox;
  37.     ChkTopBorder: TCheckBox;
  38.     ChkRightBorder: TCheckBox;
  39.     ChkBottomBorder: TCheckBox;
  40.     ChkLeftFrame: TCheckBox;
  41.     ChkTopFrame: TCheckBox;
  42.     ChkRightFrame: TCheckBox;
  43.     ChkBottomFrame: TCheckBox;
  44.     BtnOK: TButton;
  45.     PnlPreview: TRzPanel;
  46.     RzLabel1: TRzLabel;
  47.     GrpAlignment: TRzRadioGroup;
  48.     procedure TrkWidthDrawTick(TrackBar: TRzTrackBar; Canvas: TCanvas;
  49.       Location: TPoint; Index: Integer);
  50.     procedure ChkBorderClick(Sender: TObject);
  51.     procedure ChkFrameClick(Sender: TObject);
  52.     procedure CbxOuterChange(Sender: TObject);
  53.     procedure CbxInnerChange(Sender: TObject);
  54.     procedure TrkWidthChange(Sender: TObject);
  55.     procedure CbxBorderColorChange(Sender: TObject);
  56.     procedure FormCreate(Sender: TObject);
  57.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  58.     procedure GrpAlignmentClick(Sender: TObject);
  59.   private
  60.     procedure UpdateControls;
  61.   end;
  62.  
  63. var
  64.   FrmPanelEditor : TFrmPanelEditor;
  65.  
  66. implementation
  67.  
  68. {$R *.DFM}
  69.  
  70. uses
  71.   RzCommon, SysUtils, RzIntLst, RzStatus, RzDBStat, RzPrgres, Buttons;
  72.  
  73.  
  74.  
  75.  
  76.  
  77. {=============================}
  78. {== TRzPanelEditDlg Methods ==}
  79. {=============================}
  80.  
  81. procedure TFrmPanelEditor.UpdateControls;
  82. begin
  83.   CbxOuter.ItemIndex := Ord( PnlPreview.BorderOuter );
  84.   CbxInner.ItemIndex := Ord( PnlPreview.BorderInner );
  85.  
  86.   ChkLeftBorder.Checked := sdLeft in PnlPreview.BorderSides;
  87.   ChkTopBorder.Checked := sdTop in PnlPreview.BorderSides;
  88.   ChkRightBorder.Checked := sdRight in PnlPreview.BorderSides;
  89.   ChkBottomBorder.Checked := sdBottom in PnlPreview.BorderSides;
  90.  
  91.   ChkLeftFrame.Checked := sdLeft in PnlPreview.FrameSides;
  92.   ChkTopFrame.Checked := sdTop in PnlPreview.FrameSides;
  93.   ChkRightFrame.Checked := sdRight in PnlPreview.FrameSides;
  94.   ChkBottomFrame.Checked := sdBottom in PnlPreview.FrameSides;
  95.  
  96.   TrkWidth.Position := PnlPreview.BorderWidth;
  97.   CbxBorderColor.SelectedColor := PnlPreview.BorderColor;
  98. end;
  99.  
  100.  
  101. procedure TFrmPanelEditor.TrkWidthDrawTick(TrackBar: TRzTrackBar;
  102.   Canvas: TCanvas; Location: TPoint; Index: Integer);
  103. var
  104.   W : Integer;
  105.   S : string;
  106. begin
  107.   if Index mod 5 = 0 then
  108.   begin
  109.     Canvas.Brush.Color := Color;
  110.     Canvas.Font.Name := 'Small Fonts';
  111.     Canvas.Font.Size := 7;
  112.     Canvas.Font.Style := [];
  113.     S := IntToStr( Index );
  114.     W := Canvas.TextWidth( S );
  115.     Canvas.TextOut( Location.X - (W div 2), 1, S );
  116.   end;
  117. end;
  118.  
  119.  
  120. procedure TFrmPanelEditor.ChkBorderClick(Sender: TObject);
  121. begin
  122.   if TCheckBox( Sender ).Checked then
  123.     PnlPreview.BorderSides := PnlPreview.BorderSides + [ TSide( TCheckBox( Sender ).Tag ) ]
  124.   else
  125.     PnlPreview.BorderSides := PnlPreview.BorderSides - [ TSide( TCheckBox( Sender ).Tag ) ];
  126. end;
  127.  
  128.  
  129. procedure TFrmPanelEditor.ChkFrameClick(Sender: TObject);
  130. begin
  131.   if TCheckBox( Sender ).Checked then
  132.     PnlPreview.FrameSides := PnlPreview.FrameSides + [ TSide( TCheckBox( Sender ).Tag ) ]
  133.   else
  134.     PnlPreview.FrameSides := PnlPreview.FrameSides - [ TSide( TCheckBox( Sender ).Tag ) ];
  135. end;
  136.  
  137.  
  138. procedure TFrmPanelEditor.CbxOuterChange(Sender: TObject);
  139. begin
  140.   PnlPreview.BorderOuter := TFrameStyle( CbxOuter.ItemIndex );
  141. end;
  142.  
  143.  
  144. procedure TFrmPanelEditor.CbxInnerChange(Sender: TObject);
  145. begin
  146.   PnlPreview.BorderInner := TFrameStyle( CbxInner.ItemIndex );
  147. end;
  148.  
  149.  
  150. procedure TFrmPanelEditor.TrkWidthChange(Sender: TObject);
  151. begin
  152.   PnlPreview.BorderWidth := TrkWidth.Position;
  153. end;
  154.  
  155.  
  156. procedure TFrmPanelEditor.CbxBorderColorChange(Sender: TObject);
  157. begin
  158.   PnlPreview.BorderColor := CbxBorderColor.SelectedColor;
  159. end;
  160.  
  161.  
  162.  
  163. procedure TFrmPanelEditor.FormCreate(Sender: TObject);
  164. begin
  165.   UpdateControls;
  166. end;
  167.  
  168. procedure TFrmPanelEditor.FormClose(Sender: TObject;
  169.   var Action: TCloseAction);
  170. begin
  171.    Action := caFree;
  172. end;
  173.  
  174. procedure TFrmPanelEditor.GrpAlignmentClick(Sender: TObject);
  175. begin
  176.   case GrpAlignment.ItemIndex of
  177.     0:
  178.     begin
  179.       PnlPreview.Alignment := taLeftJustify;
  180.       PnlPreview.AlignmentVertical := avTop;
  181.     end;
  182.  
  183.     1:
  184.     begin
  185.       PnlPreview.Alignment := taLeftJustify;
  186.       PnlPreview.AlignmentVertical := avCenter;
  187.     end;
  188.  
  189.     2:
  190.     begin
  191.       PnlPreview.Alignment := taLeftJustify;
  192.       PnlPreview.AlignmentVertical := avBottom;
  193.     end;
  194.  
  195.     3:
  196.     begin
  197.       PnlPreview.Alignment := taCenter;
  198.       PnlPreview.AlignmentVertical := avTop;
  199.     end;
  200.  
  201.     4:
  202.     begin
  203.       PnlPreview.Alignment := taCenter;
  204.       PnlPreview.AlignmentVertical := avCenter;
  205.     end;
  206.  
  207.     5:
  208.     begin
  209.       PnlPreview.Alignment := taCenter;
  210.       PnlPreview.AlignmentVertical := avBottom;
  211.     end;
  212.  
  213.     6:
  214.     begin
  215.       PnlPreview.Alignment := taRightJustify;
  216.       PnlPreview.AlignmentVertical := avTop;
  217.     end;
  218.  
  219.     7:
  220.     begin
  221.       PnlPreview.Alignment := taRightJustify;
  222.       PnlPreview.AlignmentVertical := avCenter;
  223.     end;
  224.  
  225.     8:
  226.     begin
  227.       PnlPreview.Alignment := taRightJustify;
  228.       PnlPreview.AlignmentVertical := avBottom;
  229.     end;
  230.   end;
  231. end;
  232.  
  233. end.
  234.