home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1996 August / VPR9608A.BIN / del20try / install / data.z / TOOLBAR.PAS < prev    next >
Pascal/Delphi Source File  |  1996-05-08  |  4KB  |  168 lines

  1. unit Toolbar;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   ExtCtrls, DBCtrls, Menus, DB;
  8.   {Note: DB unit manually added above to give us access to the TDataSource type
  9.   for the SetNavigator procedure declared below.}
  10.  
  11. type
  12.   TfmToolbar = class(TForm)
  13.     MainMenu1: TMainMenu;
  14.     File1: TMenuItem;
  15.     Close1: TMenuItem;
  16.     Record1: TMenuItem;
  17.     First1: TMenuItem;
  18.     Next1: TMenuItem;
  19.     Prior1: TMenuItem;
  20.     Last1: TMenuItem;
  21.     About1: TMenuItem;
  22.     About2: TMenuItem;
  23.     Messages1: TMenuItem;
  24.     N1: TMenuItem;
  25.     Delete1: TMenuItem;
  26.     Insert1: TMenuItem;
  27.     Cancel1: TMenuItem;
  28.     Window1: TMenuItem;
  29.     Tile1: TMenuItem;
  30.     Cascade1: TMenuItem;
  31.     Panel1: TPanel;
  32.     DBNavigator1: TDBNavigator;
  33.     procedure First1Click(Sender: TObject);
  34.     procedure Next1Click(Sender: TObject);
  35.     procedure Prior1Click(Sender: TObject);
  36.     procedure Last1Click(Sender: TObject);
  37.     procedure About1Click(Sender: TObject);
  38.     procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
  39.     procedure Messages1Click(Sender: TObject);
  40.     procedure Delete1Click(Sender: TObject);
  41.     procedure Insert1Click(Sender: TObject);
  42.     procedure Cancel1Click(Sender: TObject);
  43.     procedure Tile1Click(Sender: TObject);
  44.     procedure Cascade1Click(Sender: TObject);
  45.     procedure Close1Click(Sender: TObject);
  46.   public
  47.     procedure UpdateMenu;
  48.     procedure SetNavigator(const ds: TDataSource);
  49.   end;
  50.  
  51. var
  52.   fmToolbar: TfmToolbar;
  53.  
  54. implementation
  55.  
  56. uses DM, About;
  57.  
  58. {$R *.DFM}
  59.  
  60. { Menu choices to navigate create a BtnClick event on the
  61.   Navigator, so that these choices don't need to be
  62.   directly tied to a Dataset, and so that the properties
  63.   you have set for the DBNavigator, such as ConfirmDelete,
  64.   apply throughout the application. }
  65.  
  66. procedure TfmToolbar.First1Click(Sender: TObject);
  67. begin
  68.   dbNavigator1.BtnClick(nbFirst);
  69. end;
  70.  
  71. { The dbNavigator's datasource is set on OnEnter and OnActivate
  72.   of forms with multiple data aware controls (CustOrds) or
  73.   OnActivate of forms with single data aware controls (Customer). }
  74.  
  75. procedure TfmToolbar.Next1Click(Sender: TObject);
  76. begin
  77.   dbNavigator1.BtnClick(nbNext);
  78. end;
  79.  
  80. procedure TfmToolbar.Prior1Click(Sender: TObject);
  81. begin
  82.   dbNavigator1.BtnClick(nbPrior);
  83. end;
  84.  
  85. procedure TfmToolbar.Last1Click(Sender: TObject);
  86. begin
  87.   dbNavigator1.BtnClick(nbLast);
  88. end;
  89.  
  90. procedure TfmToolbar.Delete1Click(Sender: TObject);
  91. begin
  92.   dbNavigator1.BtnClick(nbDelete);
  93. end;
  94.  
  95. procedure TfmToolbar.Insert1Click(Sender: TObject);
  96. begin
  97.   dbNavigator1.BtnClick(nbInsert);
  98. end;
  99.  
  100. procedure TfmToolbar.About1Click(Sender: TObject);
  101. var
  102.   fmAboutBox: TFmAboutBox;
  103. begin
  104.   fmAboutBox := TFmAboutBox.Create(Self);
  105.   fmAboutBox.ShowModal;
  106. end;
  107.  
  108. procedure TfmToolbar.DBNavigator1Click(Sender: TObject;
  109.   Button: TNavigateBtn);
  110. begin
  111.   UpdateMenu;
  112. end;
  113.  
  114. { Update the Record menu's choices to reflect current state
  115.   of navigational controls. }
  116. procedure TfmToolbar.UpdateMenu;
  117. begin
  118.   with DBNavigator1.Datasource.DataSet do
  119.   begin
  120.     First1.Enabled := not BOF;
  121.     Next1.Enabled :=  not BOF;
  122.     Prior1.Enabled := not BOF;
  123.     Last1.Enabled :=  not BOF;
  124.     Insert1.Enabled := State in [dsBrowse];
  125.     Delete1.Enabled := State in [dsBrowse];
  126.     Cancel1.Enabled := State in [dsEdit,dsInsert];
  127.   end;
  128. end;
  129.  
  130. procedure TfmToolbar.Messages1Click(Sender: TObject);
  131. begin
  132.   { Used to display messages on change of focus. }
  133.   Messages1.Checked := not Messages1.Checked;
  134. end;
  135.  
  136. procedure TfmToolBar.SetNavigator(const ds: TDataSource);
  137. begin
  138.   if DBNavigator1.DataSource <> ds then
  139.   begin
  140.     if Messages1.Checked then
  141.       ShowMessage('Changing DBNavigator''s datasource to ' + ds.Name);
  142.     dbNavigator1.DataSource := ds;
  143.     UpdateMenu;
  144.   end;
  145. end;
  146.  
  147. procedure TfmToolbar.Cancel1Click(Sender: TObject);
  148. begin
  149.   dbNavigator1.BtnClick(nbCancel);
  150. end;
  151.  
  152. procedure TfmToolbar.Tile1Click(Sender: TObject);
  153. begin
  154.   Tile;
  155. end;
  156.  
  157. procedure TfmToolbar.Cascade1Click(Sender: TObject);
  158. begin
  159.   Cascade;
  160. end;
  161.  
  162. procedure TfmToolbar.Close1Click(Sender: TObject);
  163. begin
  164.   Application.Terminate;
  165. end;
  166.  
  167. end.
  168.