home *** CD-ROM | disk | FTP | other *** search
/ PC Format Collection 48 / SENT14D.ISO / tech / delphi / disk15 / dbtools.pak / DBMAIN.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1995-08-24  |  5.6 KB  |  212 lines

  1. unit Dbmain;
  2.  
  3. interface
  4.  
  5. uses WinTypes, WinProcs, SysUtils, Classes, Graphics, Forms, Controls, Menus,
  6.   StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, Db, DBCtrls;
  7.  
  8. type
  9.   TDbMainForm = class(TForm)
  10.     MainMenu: TMainMenu;
  11.     Panel1: TPanel;
  12.     StatusLine: TPanel;
  13.     Db: TMenuItem;
  14.     MOpenDb: TMenuItem;
  15.     Panel2: TPanel;
  16.     MClose: TMenuItem;
  17.     Window1: TMenuItem;
  18.     Help1: TMenuItem;
  19.     N1: TMenuItem;
  20.     MExitApp: TMenuItem;
  21.     WindowCascadeItem: TMenuItem;
  22.     WindowTileItem: TMenuItem;
  23.     WindowArrangeItem: TMenuItem;
  24.     HelpAboutItem: TMenuItem;
  25.     Edit1: TMenuItem;
  26.     CutItem: TMenuItem;
  27.     CopyItem: TMenuItem;
  28.     PasteItem: TMenuItem;
  29.     WindowMinimizeItem: TMenuItem;
  30.     SpeedPanel: TPanel;
  31.     SBOpen: TSpeedButton;
  32.     SBClose: TSpeedButton;
  33.     SBCut: TSpeedButton;
  34.     SBCopy: TSpeedButton;
  35.     SBPaste: TSpeedButton;
  36.     SBExitApp: TSpeedButton;
  37.     SBViewTable: TSpeedButton;
  38.     SBEnterSQL: TSpeedButton;
  39.     MViewTable: TMenuItem;
  40.     MEnterSQL: TMenuItem;
  41.     SBExecSQL: TSpeedButton;
  42.     MExecSQL: TMenuItem;
  43.     ReadNavigator: TDBNavigator;
  44.     WriteNavigator: TDBNavigator;
  45.     procedure FormCreate(Sender: TObject);
  46.     procedure WindowCascadeItemClick(Sender: TObject);
  47.     procedure WindowDropDown(Sender: TObject);
  48.     procedure WindowTileItemClick(Sender: TObject);
  49.     procedure WindowArrangeItemClick(Sender: TObject);
  50.     procedure CloseWindowClick(Sender: TObject);
  51.     procedure OpenDbClick(Sender: TObject);
  52.     procedure ExitAppClick(Sender: TObject);
  53.     procedure CutItemClick(Sender: TObject);
  54.     procedure CopyItemClick(Sender: TObject);
  55.     procedure PasteItemClick(Sender: TObject);
  56.     procedure WindowMinimizeItemClick(Sender: TObject);
  57.     procedure ViewTableClick(Sender: TObject);
  58.     procedure EnterSQLClick(Sender: TObject);
  59.     procedure ExecuteSQLClick(Sender: TObject);
  60.     procedure HelpAboutItemClick(Sender: TObject);
  61.   private
  62.     procedure ShowHint(Sender: TObject);
  63.   public
  64.     procedure ShowAsHint (const Hint: string);
  65.     procedure FormCloseActive (Sender: TObject; var Action: TCloseAction);
  66.     procedure SetActiveForm (DSR, DSW: TDataSource);
  67.   end;
  68.  
  69. var
  70.   DbMainForm: TDbMainForm;
  71.  
  72. implementation
  73.  
  74. {$R *.DFM}
  75.  
  76. uses DbForm, Dbbrowse, DbSql, Opendb, DbExcept, About;
  77.  
  78. procedure TDbMainForm.FormCreate(Sender: TObject);
  79. begin
  80.   Application.OnHint := ShowHint;
  81. end;
  82.  
  83. procedure TDbMainForm.ShowHint(Sender: TObject);
  84. begin
  85.   StatusLine.Caption := Application.Hint;
  86. end;
  87.  
  88. procedure TDbMainForm.ShowAsHint (const Hint: string);
  89. begin
  90.   StatusLine.Caption := Hint;
  91. end;
  92.  
  93. procedure TDbMainForm.SetActiveForm (DSR, DSW: TDataSource);
  94. var
  95.   HasDb, IsBrowser, CanExecute: Boolean;
  96. begin
  97.   HasDb := ActiveMDIChild is TDbForm;
  98.   IsBrowser := ActiveMDIChild is TDbBrowseForm;
  99.   CanExecute := ActiveMDIChild is TSQLForm;
  100.  
  101.   MClose.Enabled := True; SBClose.Enabled := True;
  102.   MViewTable.Enabled := IsBrowser; SBViewTable.Enabled := IsBrowser;
  103.   MEnterSQL.Enabled := HasDb; SBEnterSQL.Enabled := HasDb;
  104.   MExecSQL.Enabled := CanExecute; SBExecSQL.Enabled := CanExecute;
  105.  
  106.   ReadNavigator.DataSource := DSR;
  107.   ReadNavigator.Enabled := DSR <> nil;
  108.  
  109.   WriteNavigator.DataSource := DSW;
  110.   WriteNavigator.Enabled := DSW <> nil;
  111. end;
  112.  
  113. procedure TDbMainForm.FormCloseActive(Sender: TObject; var Action: TCloseAction);
  114. begin
  115.   MClose.Enabled := False; SBClose.Enabled := False;
  116.   MViewTable.Enabled := False; SBViewTable.Enabled := False;
  117.   MEnterSQL.Enabled := False; SBEnterSQL.Enabled := False;
  118.   MViewTable.Enabled := False; SBViewTable.Enabled := False;
  119.   MExecSQL.Enabled := False; SBExecSQL.Enabled := False;
  120.   ReadNavigator.Enabled := False;
  121.   WriteNavigator.Enabled := False;
  122.   Action := caFree
  123. end;
  124.  
  125. procedure TDbMainForm.OpenDbClick(Sender: TObject);
  126. begin
  127.   if OpenDbDlg.ShowModal = mrOk then
  128.     TDbBrowseForm.Create (Application, OpenDbDlg.AliasName)
  129. end;
  130.  
  131. procedure TDbMainForm.CloseWindowClick(Sender: TObject);
  132. begin
  133.   ActiveMDIChild.Close
  134. end;
  135.  
  136. procedure TDbMainForm.ExitAppClick(Sender: TObject);
  137. begin
  138.   Close;
  139. end;
  140.  
  141. procedure TDbMainForm.CutItemClick(Sender: TObject);
  142. begin
  143.   {cut selection to clipboard}
  144. end;
  145.  
  146. procedure TDbMainForm.CopyItemClick(Sender: TObject);
  147. begin
  148.   {copy selection to clipboard}
  149. end;
  150.  
  151. procedure TDbMainForm.PasteItemClick(Sender: TObject);
  152. begin
  153.   {paste from clipboard}
  154. end;
  155.  
  156. procedure TDbMainForm.WindowDropDown(Sender: TObject);
  157. begin
  158.   WindowCascadeItem.Enabled := MDIChildCount > 0;
  159.   WindowTileItem.Enabled := MDIChildCount > 0;
  160.   WindowArrangeItem.Enabled := MDIChildCount > 0;
  161.   WindowMinimizeItem.Enabled := MDIChildCount > 0;
  162. end;
  163.  
  164. procedure TDbMainForm.WindowCascadeItemClick(Sender: TObject);
  165. begin
  166.   Cascade;
  167. end;
  168.  
  169. procedure TDbMainForm.WindowTileItemClick(Sender: TObject);
  170. begin
  171.   Tile;
  172. end;
  173.  
  174. procedure TDbMainForm.WindowArrangeItemClick(Sender: TObject);
  175. begin
  176.   ArrangeIcons;
  177. end;
  178.  
  179. procedure TDbMainForm.WindowMinimizeItemClick(Sender: TObject);
  180. var
  181.   I: Integer;
  182. begin
  183.   { Must be done backwards through the MDIChildren array }
  184.   for I := MDIChildCount - 1 downto 0 do
  185.     MDIChildren[I].WindowState := wsMinimized;
  186. end;
  187.  
  188. procedure TDbMainForm.ViewTableClick(Sender: TObject);
  189. begin
  190.   with ActiveMDIChild as TDbBrowseForm do
  191.     CreateTableView;
  192. end;
  193.  
  194. procedure TDbMainForm.EnterSQLClick(Sender: TObject);
  195. begin
  196.   with ActiveMDIChild as TDbForm do
  197.     CreateSQLForm;
  198. end;
  199.  
  200. procedure TDbMainForm.ExecuteSQLClick(Sender: TObject);
  201. begin
  202.   with ActiveMDIChild as TSQLForm do
  203.     ExecuteSQL;
  204. end;
  205.  
  206. procedure TDbMainForm.HelpAboutItemClick(Sender: TObject);
  207. begin
  208.   AboutBox.ShowModal;
  209. end;
  210.  
  211. end.
  212.