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

  1. {===============================================================================
  2.   RzTbrEdt Unit
  3.  
  4.   This unit implements a component editor for the RzToolbar component. This
  5.   unit defines the TRzToolbarEditor class and the TRzToolbarEditDlg class. The
  6.   TRzToolbarEditor displays the TRzToolbarEditDlg form when the component is
  7.   double-clicked or the first context menu item is chosen. The form provides a
  8.   fast and easy way to add speed buttons with custom glyphs to the toolbar.
  9.  
  10.   Copyright ⌐ 1995-1996 by Raize Software Solutions, Inc.
  11. ===============================================================================}
  12.  
  13. unit Tlbarfrm;
  14.  
  15. interface
  16.  
  17. uses
  18.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  19.   Forms, Dialogs, Buttons, StdCtrls, DsgnIntf, RzPanel;
  20.  
  21. type
  22.   TFrmToolbarEditor = class(TForm)
  23.     GrpFormatting: TGroupBox;
  24.     GrpMisc: TGroupBox;
  25.     BtnHelpBook: TSpeedButton;
  26.     BtnExecute: TSpeedButton;
  27.     BtnUpOneLevel: TSpeedButton;
  28.     BtnUtils: TSpeedButton;
  29.     GrpViewing: TGroupBox;
  30.     BtnView: TSpeedButton;
  31.     BtnZoomIn: TSpeedButton;
  32.     BtnZoomOut: TSpeedButton;
  33.     BtnBold: TSpeedButton;
  34.     BtnItalic: TSpeedButton;
  35.     BtnUnderline: TSpeedButton;
  36.     BtnLeftJustify: TSpeedButton;
  37.     BtnJustify: TSpeedButton;
  38.     BtnRightJustify: TSpeedButton;
  39.     BtnBullets: TSpeedButton;
  40.     BtnCenterJustify: TSpeedButton;
  41.     GrpEditing: TGroupBox;
  42.     BtnCut: TSpeedButton;
  43.     BtnCopy: TSpeedButton;
  44.     BtnPaste: TSpeedButton;
  45.     BtnUndo: TSpeedButton;
  46.     BtnRepeat: TSpeedButton;
  47.     GrpDatabase: TGroupBox;
  48.     BtnAdd: TSpeedButton;
  49.     BtnDelete: TSpeedButton;
  50.     BtnEdit: TSpeedButton;
  51.     BtnFirst: TSpeedButton;
  52.     BtnPrev: TSpeedButton;
  53.     BtnNext: TSpeedButton;
  54.     BtnLast: TSpeedButton;
  55.     GrpWindow: TGroupBox;
  56.     BtnCascade: TSpeedButton;
  57.     BtnHorzTile: TSpeedButton;
  58.     BtnVertTile: TSpeedButton;
  59.     BtnTile: TSpeedButton;
  60.     GrpFiles: TGroupBox;
  61.     BtnNew: TSpeedButton;
  62.     BtnOpen: TSpeedButton;
  63.     BtnSave: TSpeedButton;
  64.     GrpDeleting: TGroupBox;
  65.     BtnBasket: TSpeedButton;
  66.     BtnRecycle: TSpeedButton;
  67.     BtnTrashcan: TSpeedButton;
  68.     GrpSearching: TGroupBox;
  69.     BtnFind: TSpeedButton;
  70.     BtnFindNext: TSpeedButton;
  71.     BtnReplace: TSpeedButton;
  72.     GrpComm: TGroupBox;
  73.     BtnMail: TSpeedButton;
  74.     BtnFax: TSpeedButton;
  75.     BtnPrinter: TSpeedButton;
  76.     BtnDone: TButton;
  77.     BtnAccept: TSpeedButton;
  78.     BtnReject: TSpeedButton;
  79.     GrpBlank: TGroupBox;
  80.     BtnBlank: TSpeedButton;
  81.     ChkSpacer: TCheckBox;
  82.     procedure FormCreate(Sender: TObject);
  83.     procedure SpeedButtonClick(Sender: TObject);
  84.   private
  85.   public
  86.     SelectedBtn : TSpeedButton;
  87.     ParentForm : TForm;
  88.     Toolbar : TRzToolbar;
  89.   end;
  90.  
  91. var
  92.   FrmToolbarEditor : TFrmToolbarEditor;
  93.  
  94. implementation
  95.  
  96. {$R *.DFM}
  97.  
  98. uses
  99.   RzCommon;
  100.  
  101.  
  102. {===============================}
  103. {== TRzToolbarEditDlg Methods ==}
  104. {===============================}
  105.  
  106. procedure TFrmToolbarEditor.FormCreate(Sender: TObject);
  107. begin
  108.   {$IFNDEF WIN32}
  109.   { Adjust Position of SpeedButtons }
  110.   BtnOpen.Left := BtnOpen.Left - 1;
  111.   BtnSave.Left := BtnSave.Left - 2;
  112.  
  113.   BtnCopy.Left := BtnCopy.Left - 1;
  114.   BtnPaste.Left := BtnPaste.Left - 2;
  115.   BtnRepeat.Left := BtnRepeat.Left - 3;
  116.  
  117.   BtnItalic.Left := BtnItalic.Left - 1;
  118.   BtnUnderline.Left := BtnUnderline.Left - 2;
  119.  
  120.   BtnCenterJustify.Left := BtnCenterJustify.Left - 1;
  121.   BtnRightJustify.Left := BtnRightJustify.Left - 2;
  122.   BtnJustify.Left := BtnJustify.Left - 3;
  123.  
  124.   BtnReplace.Left := BtnReplace.Left - 1;
  125.   BtnFindNext.Left := BtnFindNext.Left - 2;
  126.  
  127.   BtnHorzTile.Left := BtnHorzTile.Left - 1;
  128.   BtnVertTile.Left := BtnVertTile.Left - 2;
  129.   BtnTile.Left := BtnTile.Left - 3;
  130.  
  131.   BtnZoomOut.Left := BtnZoomOut.Left - 1;
  132.   BtnZoomIn.Left := BtnZoomIn.Left - 2;
  133.  
  134.   BtnEdit.Left := BtnEdit.Left - 1;
  135.   BtnDelete.Left := BtnDelete.Left - 2;
  136.  
  137.   BtnPrev.Left := BtnPrev.Left - 1;
  138.   BtnNext.Left := BtnNext.Left - 2;
  139.   BtnLast.Left := BtnLast.Left - 3;
  140.  
  141.   BtnFax.Left := BtnFax.Left - 1;
  142.   BtnPrinter.Left := BtnPrinter.Left - 2;
  143.  
  144.   BtnReject.Left := BtnReject.Left - 1;
  145.  
  146.   BtnRecycle.Left := BtnRecycle.Left - 1;
  147.   BtnTrashcan.Left := BtnTrashcan.Left - 2;
  148.   {$ENDIF}
  149. end;
  150.  
  151.  
  152. procedure TFrmToolbarEditor.SpeedButtonClick(Sender: TObject);
  153. var
  154.   B : TSpeedButton;
  155.   MaxLeft, MaxTop, I, Spacer : Integer;
  156. begin
  157.   { A SpeedButton has been selected }
  158.   SelectedBtn := TSpeedButton( Sender );
  159.  
  160.   if ParentForm <> nil then
  161.   begin
  162.     B := TSpeedButton.Create( ParentForm );
  163.     B.Parent := Toolbar;
  164.     if Toolbar.Align in [ alLeft, alRight ] then
  165.     begin
  166.       B.Left := 4;
  167.       MaxTop := 0;
  168.       for I := 0 to B.Parent.ControlCount - 1 do
  169.       begin
  170.         if B.Parent.Controls[ I ].Top > MaxTop then
  171.           MaxTop := B.Parent.Controls[ I ].Top;
  172.       end;
  173.       if MaxTop = 0 then
  174.         B.Top := 4
  175.       else
  176.       begin
  177.         if ChkSpacer.Checked then
  178.           Spacer := 1
  179.         else
  180.           Spacer := 0;
  181.         {$IFDEF WIN32}
  182.         B.Top := MaxTop + 25 + ( Spacer * 8 );
  183.         {$ELSE}
  184.         B.Top := MaxTop + 24 + ( Spacer * 8 );
  185.         {$ENDIF}
  186.       end;
  187.     end
  188.     else                                   { alTop, alBottom, alClient, alNone }
  189.     begin
  190.       B.Top := 4;
  191.  
  192.       MaxLeft := 0;
  193.       for I := 0 to B.Parent.ControlCount - 1 do
  194.       begin
  195.         if B.Parent.Controls[ I ].Left > MaxLeft then
  196.           MaxLeft := B.Parent.Controls[ I ].Left;
  197.       end;
  198.       if MaxLeft = 0 then
  199.         B.Left := 4
  200.       else
  201.       begin
  202.         if ChkSpacer.Checked then
  203.           Spacer := 1
  204.         else
  205.           Spacer := 0;
  206.         {$IFDEF WIN32}
  207.         B.Left := MaxLeft + 25 + ( Spacer * 8 );
  208.         {$ELSE}
  209.         B.Left := MaxLeft + 24 + ( Spacer * 8 );
  210.         {$ENDIF}
  211.       end;
  212.     end;
  213.  
  214.     B.Name := GetNewComponentName( ParentForm, 'SpeedButton' );
  215.  
  216.     { Copy glyph from selected button }
  217.     B.Glyph.Assign( SelectedBtn.Glyph );
  218.     B.NumGlyphs := B.Glyph.Width div 18;
  219.     B.Hint := SelectedBtn.Hint;
  220.     ChkSpacer.Checked := False;
  221.   end;
  222. end;
  223.  
  224.  
  225.  
  226.  
  227.  
  228. end.
  229.