3.单文档窗体与多文档窗体
3.1单文档窗体
单文档窗体(SDI,Single Document Interface)是文档处理软件常用的方式。比如:Windows的记事本等。每次只能打开一个窗口对文档进行编辑。
我们一般新建的应用程序,在不改变 FormStyle 属性的情况下,默认都是单文档窗体。
在 Delphi 中,我们可以使用创建单文档窗体的向导来完成一个具有部分功能的单文档窗体应用程序。
示例如下:
1.选择 File / New / Others,如下图:
2.选择 SDI Application,单击 OK,然后选择项目的保存位置,确定后生成单文档应用程序,如下图:
3.生成的文件,如下图:
4.生成的主要代码如下:
unit SDIMAIN;interfaceuses Winapi.Windows, System.Classes, Vcl.Graphics, Vcl.Forms, Vcl.Controls, Vcl.Menus, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons, Vcl.ExtCtrls, Vcl.ComCtrls, Vcl.ImgList, Vcl.StdActns, Vcl.ActnList, Vcl.ToolWin;type TSDIAppForm = class(TForm) OpenDialog: TOpenDialog; SaveDialog: TSaveDialog; ToolBar1: TToolBar; ToolButton9: TToolButton; ToolButton1: TToolButton; ToolButton2: TToolButton; ToolButton3: TToolButton; ToolButton4: TToolButton; ToolButton5: TToolButton; ToolButton6: TToolButton; ActionList1: TActionList; FileNew1: TAction; FileOpen1: TAction; FileSave1: TAction; FileSaveAs1: TAction; FileExit1: TAction; EditCut1: TEditCut; EditCopy1: TEditCopy; EditPaste1: TEditPaste; HelpAbout1: TAction; StatusBar: TStatusBar; ImageList1: TImageList; MainMenu1: TMainMenu; File1: TMenuItem; FileNewItem: TMenuItem; FileOpenItem: TMenuItem; FileSaveItem: TMenuItem; FileSaveAsItem: TMenuItem; N1: TMenuItem; FileExitItem: TMenuItem; Edit1: TMenuItem; CutItem: TMenuItem; CopyItem: TMenuItem; PasteItem: TMenuItem; Help1: TMenuItem; HelpAboutItem: TMenuItem; procedure FileNew1Execute(Sender: TObject); procedure FileOpen1Execute(Sender: TObject); procedure FileSave1Execute(Sender: TObject); procedure FileExit1Execute(Sender: TObject); procedure HelpAbout1Execute(Sender: TObject); private { Private declarations } public { Public declarations } end;var SDIAppForm: TSDIAppForm;implementationuses About;{$R *.dfm}procedure TSDIAppForm.FileNew1Execute(Sender: TObject);begin { Do nothing }end;procedure TSDIAppForm.FileOpen1Execute(Sender: TObject);begin OpenDialog.Execute;end;procedure TSDIAppForm.FileSave1Execute(Sender: TObject);begin SaveDialog.Execute;end;procedure TSDIAppForm.FileExit1Execute(Sender: TObject);begin Close;end;procedure TSDIAppForm.HelpAbout1Execute(Sender: TObject);begin AboutBox.ShowModal;end;end.
5.运行应用程序,并选择打开按钮,如下图:
单文档应用程序创建向导帮助我们创建了应用程序,并在各项菜单及按钮执行的操作中编写了简单的代码,具体功能的完善和应用程序的设计还需要我们在该框架下进行代码编写才能完成。
3.2多文档窗体
多文档窗体(MDI,Multiple Document Interface)的功能相对于单文档窗体来说,比较强大和复杂,比如:MS Word、Excel,金山的 Wps 等,它们能够同时打开多个窗口来编辑文件。
通过修改窗体的 FormStyle 属性就可以确定窗体是单文档还是多文档。该属性的取值:
- FsNormal
普通窗体,也就是单文档窗体。
- FsMdiChild
多文档窗体应用程序的子窗体,供父窗体调用。
- FsMdiForm
多文档窗体应用程序的父窗体,调用子窗体。
- FsStayOnTop
设置窗体始终处于应用程序或者其他窗口的最上面。
可以通过应用程序向导来建立多文档应用程序,示例如下:
1.选择 File / New / Others,在 New Items 对话框中选择 MDI Application,选择保存目录并确定,即可生成多文档应用程序。
2.运行程序,单击新建按钮,能够打开新的空白窗体。如下图: