home *** CD-ROM | disk | FTP | other *** search
- unit Main;
-
- interface
-
- uses WinTypes, WinProcs, SysUtils, Classes, Graphics, Forms, Controls, Menus,
- StdCtrls, Dialogs, Buttons, Messages, ExtCtrls;
-
- type
- TMainForm = class(TForm)
- MainMenu1: TMainMenu;
- Panel1: TPanel;
- StatusLine: TPanel;
- File1: TMenuItem;
- FileNewItem: TMenuItem;
- FileOpenItem: TMenuItem;
- Panel2: TPanel;
- FileCloseItem: TMenuItem;
- Window1: TMenuItem;
- Help1: TMenuItem;
- N1: TMenuItem;
- FileExitItem: TMenuItem;
- WindowCascadeItem: TMenuItem;
- WindowTileItem: TMenuItem;
- WindowArrangeItem: TMenuItem;
- HelpAboutItem: TMenuItem;
- OpenDialog: TOpenDialog;
- FileSaveItem: TMenuItem;
- FileSaveAsItem: TMenuItem;
- Edit1: TMenuItem;
- CutItem: TMenuItem;
- CopyItem: TMenuItem;
- PasteItem: TMenuItem;
- WindowMinimizeItem: TMenuItem;
- SpeedPanel: TPanel;
- OpenBtn: TSpeedButton;
- SaveBtn: TSpeedButton;
- CutBtn: TSpeedButton;
- CopyBtn: TSpeedButton;
- PasteBtn: TSpeedButton;
- ExitBtn: TSpeedButton;
- procedure FormCreate(Sender: TObject);
- procedure FileNewItemClick(Sender: TObject);
- procedure WindowCascadeItemClick(Sender: TObject);
- procedure UpdateMenuItems(Sender: TObject);
- procedure WindowTileItemClick(Sender: TObject);
- procedure WindowArrangeItemClick(Sender: TObject);
- procedure FileCloseItemClick(Sender: TObject);
- procedure FileOpenItemClick(Sender: TObject);
- procedure FileExitItemClick(Sender: TObject);
- procedure FileSaveItemClick(Sender: TObject);
- procedure FileSaveAsItemClick(Sender: TObject);
- procedure CutItemClick(Sender: TObject);
- procedure CopyItemClick(Sender: TObject);
- procedure PasteItemClick(Sender: TObject);
- procedure WindowMinimizeItemClick(Sender: TObject);
- procedure FormDestroy(Sender: TObject);
- private
- { Private declarations }
- procedure CreateMDIChild(const Name: string);
- procedure ShowHint(Sender: TObject);
- public
- { Public declarations }
- end;
-
- var
- MainForm: TMainForm;
-
- implementation
-
- {$R *.DFM}
-
- uses ChildWin;
-
- procedure TMainForm.FormCreate(Sender: TObject);
- begin
- Application.OnHint := ShowHint;
- Screen.OnActiveFormChange := UpdateMenuItems;
- end;
-
- procedure TMainForm.ShowHint(Sender: TObject);
- begin
- StatusLine.Caption := Application.Hint;
- end;
-
- procedure TMainForm.CreateMDIChild(const Name: string);
- var
- Child: TMDIChild;
- begin
- { create a new MDI child window }
- Child := TMDIChild.Create(Application);
- Child.Caption := Name;
- end;
-
- procedure TMainForm.FileNewItemClick(Sender: TObject);
- begin
- CreateMDIChild('NONAME' + IntToStr(MDIChildCount + 1));
- end;
-
- procedure TMainForm.FileOpenItemClick(Sender: TObject);
- begin
- if OpenDialog.Execute then
- CreateMDIChild(OpenDialog.FileName);
- end;
-
- procedure TMainForm.FileCloseItemClick(Sender: TObject);
- begin
- if ActiveMDIChild <> nil then
- ActiveMDIChild.Close;
- end;
-
- procedure TMainForm.FileSaveItemClick(Sender: TObject);
- begin
- { save current file (ActiveMDIChild points to the window) }
- end;
-
- procedure TMainForm.FileSaveAsItemClick(Sender: TObject);
- begin
- { save current file under new name }
- end;
-
- procedure TMainForm.FileExitItemClick(Sender: TObject);
- begin
- Close;
- end;
-
- procedure TMainForm.CutItemClick(Sender: TObject);
- begin
- {cut selection to clipboard}
- end;
-
- procedure TMainForm.CopyItemClick(Sender: TObject);
- begin
- {copy selection to clipboard}
- end;
-
- procedure TMainForm.PasteItemClick(Sender: TObject);
- begin
- {paste from clipboard}
- end;
-
- procedure TMainForm.WindowCascadeItemClick(Sender: TObject);
- begin
- Cascade;
- end;
-
- procedure TMainForm.WindowTileItemClick(Sender: TObject);
- begin
- Tile;
- end;
-
- procedure TMainForm.WindowArrangeItemClick(Sender: TObject);
- begin
- ArrangeIcons;
- end;
-
- procedure TMainForm.WindowMinimizeItemClick(Sender: TObject);
- var
- I: Integer;
- begin
- { Must be done backwards through the MDIChildren array }
- for I := MDIChildCount - 1 downto 0 do
- MDIChildren[I].WindowState := wsMinimized;
- end;
-
- procedure TMainForm.UpdateMenuItems(Sender: TObject);
- begin
- FileCloseItem.Enabled := MDIChildCount > 0;
- FileSaveItem.Enabled := MDIChildCount > 0;
- FileSaveAsItem.Enabled := MDIChildCount > 0;
- CutItem.Enabled := MDIChildCount > 0;
- CopyItem.Enabled := MDIChildCount > 0;
- PasteItem.Enabled := MDIChildCount > 0;
- SaveBtn.Enabled := MDIChildCount > 0;
- CutBtn.Enabled := MDIChildCount > 0;
- CopyBtn.Enabled := MDIChildCount > 0;
- PasteBtn.Enabled := MDIChildCount > 0;
- WindowCascadeItem.Enabled := MDIChildCount > 0;
- WindowTileItem.Enabled := MDIChildCount > 0;
- WindowArrangeItem.Enabled := MDIChildCount > 0;
- WindowMinimizeItem.Enabled := MDIChildCount > 0;
- end;
-
- procedure TMainForm.FormDestroy(Sender: TObject);
- begin
- Screen.OnActiveFormChange := nil;
- end;
-
- end.
-