1.6整理程序的框架
经过上面一节,我们已经有了一套比较好的控制主窗体和子窗体的代码了,但这些代码有一个特别碍眼的地方,就是窗体的控制与业务代码混在一起,这样一来,当我们要新建立一个新的工程时,我们就不能很好的复用之前所写的窗体控制代码,为此我们在这一节中,把控制代码分离出来。
首先,我们把MainForm.pas另存为 MainFormDefine.pas,然后将这个frmMain改名为CustomMainForm,接着把整个工程关闭,在工程所在的目录下面建立两个目录,一个名叫FlexMDIFramework的目录,另一个叫EXE,把上层目录中的MainFormDefine(含pas及dfm文件)和ChildFormDefine(含pas及dfm文件)剪切到FlexMDIFramework中,把其它的文件剪切到EXE目录中。重新用Delphi打开工程,这时候Delphi会报错,先不管它,打开工程后,把那失效的ChildFormDefine及MainFormDefine文件从工程中移除,然后重新在../FlexMDIFramework中添加上这两个文件。
现在我们需要新建立一个“单纯的”主窗体,以后有关某一工程独有的代码就放在这个窗体中,通过 File->New->Other->Inheritable Items->CustomMainForm,就可以创建出我们所需的主窗体,我们把这个窗体保存为EXE/MainForm.pas,同时把这个窗体命名为frmMain,然后在MDI_Tutorial.pas中所有的CreateForm语句删除掉,只保留将 Application.CreateForm(TfrmMain, frmMain); 即可。
最后,为了使得我们的框架更清爽一些,我们把CustomMainForm中的MainMenu中的内容完部清除掉,从frmMain中添加回我们想要的菜单项以及它们所对应的响应过程。