当前位置:首页文章首页 IT学院 Delphi

一个简单的MDI示范程序(Delphi)

作者:  来源:  发布时间:2012-1-8 17:57:33  点击:
到目前为止,我们自己随意建立一个属于自己的About框,我的About对话框效果如下:

image

1、将建立好的About窗体的Name属性设置为AboutBox,BorderStyle属性设置为bsDialog

image

image

2、以PVAboutU保存此About对话框窗体单元;

3、切换到Code Editor中的PctViewU标签,从Delphi主菜单选择【File | Use Unit】将PVAboutU单元包含近来;

4、按F12切换到MainForm主窗体,从菜单上选择【Help | About】,这样就产生一个OnClick处理事件;

5、为此事件添加代码如下:

procedure TMainForm.About1Click(Sender: TObject); begin   AboutBox.ShowModal; end;

现在运行它,点击Run按钮,试一试Help菜单的About选项,运行效果如下:

0094

六、进一步完善程序

此时这个程序已经可以运行了,但它不等于就没有值得完善的地方。

对于这个程序还有两个问题需要值得注意,它们容易混淆,首先,当启动该程序时,会显示一个空白MDI子窗口,这是因为Delphi应用程序会自动建立所有窗体。我们可以从自动产生的清单中删除MDI子窗体。

1、从Delphi主菜单中选择【Project | Options…】,将显示Project Option对话框;

0095

2、点击Forms标签,其中“Auto-create forms”中显示的就是所有会自动创建产生的窗体清单;

3、点击其中不想要自动创建的窗体Child,选择 >按钮,就会从自动创建列表中删除该子窗口,并把它放置到“Available forms”列表中。

再次运行此程序,这一次将不显示空白MDI子窗体。

Caution

如果要从自动产生清单中删除一个窗体,就必须保证在用它之前要建立一个专门的窗体,如果不建立一个窗体,指向窗体的指针就不能初始化,这就意味着还没有为此指针赋一个有意义的值(记住指针是由Delphi自动产生)。试图用这个指针,其结果将会产生一个非法错误,当从自动产生清单中删除一个窗体后,就必须负责在用它之前建立它。

还有一个问题,就是在MDI窗体上点击关闭按钮时,发现子窗口并没有关闭,而是最小化,因此我们要修改它,使得点击关闭后真正被关闭。

1、在Form Designer中选择Child子窗体,选中窗体本身,确认在Object Inspector的Component Selector中选择的是Child。

2、双击Events页的OnClose事件,添加代码如下:

procedure TChild.FormClose(Sender: TObject; var Action: TCloseAction); begin   Action := caFree; end;

把关闭动作设置为caFree,指示VCL关闭子窗体,并释放与窗体有关的内存,这时点击MDI子窗体关闭按钮就可以正常关闭了。

4、再次运行此程序,证明此程序的表现与前面所述的一样。

Tags:

MDI示范程序
首页 上一页 [1] [2] [3]  下一页 尾页
上一篇:Delphi使用ABC 下一篇:

相关软件

相关文章

文章评论

软件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z