home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 August / VPR9708A.ISO / D3TRIAL / INSTALL / DATA.Z / MAIN.PAS < prev    next >
Pascal/Delphi Source File  |  1997-03-13  |  5KB  |  193 lines

  1. unit Main;
  2.  
  3. interface
  4.  
  5. uses Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus,
  6.   StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls;
  7.  
  8. type
  9.   TMainForm = class(TForm)
  10.     MainMenu1: TMainMenu;
  11.     File1: TMenuItem;
  12.     FileNewItem: TMenuItem;
  13.     FileOpenItem: TMenuItem;
  14.     FileCloseItem: TMenuItem;
  15.     Window1: TMenuItem;
  16.     Help1: TMenuItem;
  17.     N1: TMenuItem;
  18.     FileExitItem: TMenuItem;
  19.     WindowCascadeItem: TMenuItem;
  20.     WindowTileItem: TMenuItem;
  21.     WindowArrangeItem: TMenuItem;
  22.     HelpAboutItem: TMenuItem;
  23.     OpenDialog: TOpenDialog;
  24.     FileSaveItem: TMenuItem;
  25.     FileSaveAsItem: TMenuItem;
  26.     Edit1: TMenuItem;
  27.     CutItem: TMenuItem;
  28.     CopyItem: TMenuItem;
  29.     PasteItem: TMenuItem;
  30.     WindowMinimizeItem: TMenuItem;
  31.     SpeedPanel: TPanel;
  32.     OpenBtn: TSpeedButton;
  33.     SaveBtn: TSpeedButton;
  34.     CutBtn: TSpeedButton;
  35.     CopyBtn: TSpeedButton;
  36.     PasteBtn: TSpeedButton;
  37.     ExitBtn: TSpeedButton;
  38.     StatusBar: TStatusBar;
  39.     procedure FormCreate(Sender: TObject);
  40.     procedure FileNewItemClick(Sender: TObject);
  41.     procedure WindowCascadeItemClick(Sender: TObject);
  42.     procedure UpdateMenuItems(Sender: TObject);
  43.     procedure WindowTileItemClick(Sender: TObject);
  44.     procedure WindowArrangeItemClick(Sender: TObject);
  45.     procedure FileCloseItemClick(Sender: TObject);
  46.     procedure FileOpenItemClick(Sender: TObject);
  47.     procedure FileExitItemClick(Sender: TObject);
  48.     procedure FileSaveItemClick(Sender: TObject);
  49.     procedure FileSaveAsItemClick(Sender: TObject);
  50.     procedure CutItemClick(Sender: TObject);
  51.     procedure CopyItemClick(Sender: TObject);
  52.     procedure PasteItemClick(Sender: TObject);
  53.     procedure WindowMinimizeItemClick(Sender: TObject);
  54.     procedure FormDestroy(Sender: TObject);
  55.     procedure HelpAboutItemClick(Sender: TObject);
  56.   private
  57.     { Private declarations }
  58.     procedure CreateMDIChild(const Name: string);
  59.     procedure ShowHint(Sender: TObject);
  60.   public
  61.     { Public declarations }
  62.   end;
  63.  
  64. var
  65.   MainForm: TMainForm;
  66.  
  67. implementation
  68.  
  69. {$R *.DFM}
  70.  
  71. uses ChildWin, About;
  72.  
  73. procedure TMainForm.FormCreate(Sender: TObject);
  74. begin
  75.   Application.OnHint := ShowHint;
  76.   Screen.OnActiveFormChange := UpdateMenuItems;
  77. end;
  78.  
  79. procedure TMainForm.ShowHint(Sender: TObject);
  80. begin
  81.   StatusBar.SimpleText := Application.Hint;
  82. end;
  83.  
  84. procedure TMainForm.CreateMDIChild(const Name: string);
  85. var
  86.   Child: TMDIChild;
  87. begin
  88.   { create a new MDI child window }
  89.   Child := TMDIChild.Create(Application);
  90.   Child.Caption := Name;
  91. end;
  92.  
  93. procedure TMainForm.FileNewItemClick(Sender: TObject);
  94. begin
  95.   CreateMDIChild('NONAME' + IntToStr(MDIChildCount + 1));
  96. end;
  97.  
  98. procedure TMainForm.FileOpenItemClick(Sender: TObject);
  99. begin
  100.   if OpenDialog.Execute then
  101.     CreateMDIChild(OpenDialog.FileName);
  102. end;
  103.  
  104. procedure TMainForm.FileCloseItemClick(Sender: TObject);
  105. begin
  106.   if ActiveMDIChild <> nil then
  107.     ActiveMDIChild.Close;
  108. end;
  109.  
  110. procedure TMainForm.FileSaveItemClick(Sender: TObject);
  111. begin
  112.   { save current file (ActiveMDIChild points to the window) }
  113. end;
  114.  
  115. procedure TMainForm.FileSaveAsItemClick(Sender: TObject);
  116. begin
  117.   { save current file under new name }
  118. end;
  119.  
  120. procedure TMainForm.FileExitItemClick(Sender: TObject);
  121. begin
  122.   Close;
  123. end;
  124.  
  125. procedure TMainForm.CutItemClick(Sender: TObject);
  126. begin
  127.   {cut selection to clipboard}
  128. end;
  129.  
  130. procedure TMainForm.CopyItemClick(Sender: TObject);
  131. begin
  132.   {copy selection to clipboard}
  133. end;
  134.  
  135. procedure TMainForm.PasteItemClick(Sender: TObject);
  136. begin
  137.   {paste from clipboard}
  138. end;
  139.  
  140. procedure TMainForm.WindowCascadeItemClick(Sender: TObject);
  141. begin
  142.   Cascade;
  143. end;
  144.  
  145. procedure TMainForm.WindowTileItemClick(Sender: TObject);
  146. begin
  147.   Tile;
  148. end;
  149.  
  150. procedure TMainForm.WindowArrangeItemClick(Sender: TObject);
  151. begin
  152.   ArrangeIcons;
  153. end;
  154.  
  155. procedure TMainForm.WindowMinimizeItemClick(Sender: TObject);
  156. var
  157.   I: Integer;
  158. begin
  159.   { Must be done backwards through the MDIChildren array }
  160.   for I := MDIChildCount - 1 downto 0 do
  161.     MDIChildren[I].WindowState := wsMinimized;
  162. end;
  163.  
  164. procedure TMainForm.UpdateMenuItems(Sender: TObject);
  165. begin
  166.   FileCloseItem.Enabled := MDIChildCount > 0;
  167.   FileSaveItem.Enabled := MDIChildCount > 0;
  168.   FileSaveAsItem.Enabled := MDIChildCount > 0;
  169.   CutItem.Enabled := MDIChildCount > 0;
  170.   CopyItem.Enabled := MDIChildCount > 0;
  171.   PasteItem.Enabled := MDIChildCount > 0;
  172.   SaveBtn.Enabled := MDIChildCount > 0;
  173.   CutBtn.Enabled := MDIChildCount > 0;
  174.   CopyBtn.Enabled := MDIChildCount > 0;
  175.   PasteBtn.Enabled := MDIChildCount > 0;
  176.   WindowCascadeItem.Enabled := MDIChildCount > 0;
  177.   WindowTileItem.Enabled := MDIChildCount > 0;
  178.   WindowArrangeItem.Enabled := MDIChildCount > 0;
  179.   WindowMinimizeItem.Enabled := MDIChildCount > 0;
  180. end;
  181.  
  182. procedure TMainForm.FormDestroy(Sender: TObject);
  183. begin
  184.   Screen.OnActiveFormChange := nil;
  185. end;
  186.  
  187. procedure TMainForm.HelpAboutItemClick(Sender: TObject);
  188. begin
  189.   AboutBox.ShowModal;
  190. end;
  191.  
  192. end.
  193.