• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Delphi的对话框窗体

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

窗体也可以用作对话框,实际上,对于用户来说,作为对话框的Delphi窗体与真正的对话框之间没有区别的。

真正的对话框”意思是指用传统方法建立起来的对话框,它有资源编译器和资源脚本文件建立,在其他一些编程环境中其对话框就是用这种方式建立的,Delphi没有用传统的对话框)。

对话框有以下几种特征,这正是与正常窗体的不同之处:

1、对话框通常不能调整大小,它们通常是用来完成一个特殊的功能,改变对话框的大小没啥用处;

2、对话框几乎总有一个OK按钮,还有一些对话框有一个Close按钮,此按钮也是完成相同的任务,一个典型的简单对话框只有一个OK按钮,比如Delphi 7的About关于对话框就是这种对话框,如下:

3、对话框可能有一个Cancel(关闭)按钮和Help(帮助)按钮;

4、有一种对话框是扩展标签对话框(Tabbed dialog boxes),这种对话框显示好几个可供用户选择的标签钮,当点击一个标签钮时,就会显示对话框的不同页面,例如Delphi 7主菜单【Tools | Environment Option…】对话框,如下:

5、大部分对话框中,Tab键可以用来从一个控件移到另一个相邻的控件;

6、对话框一般在标题栏上有一个系统关闭按钮,它们通常没有最小化和最大化按钮。

每种规律都有例外,大部分对话框都有这些常用的特征,但也有一些对话框执行一些特别的任务,这样它就会与这些正规的情况有这样或那样的不同。

 

Delphi方式对话框

Delphi中,对话框只是另一种形式的窗体,建立一个对话框就与建立一个主窗口窗体或其他窗体一样。为了防止对话框缩放,需要设置Form的BorderStyle属性为bsDialog或者bsSingle。通过改变对话框窗体上各个空间的TabOrder属性,就可以改变Tab键切换次序。

模式(modal)对话框是一种在用户继续使用应用程序之前必须消失的对话框,当这种对话框打开时,应用程序主窗体要停止工作。大部分对话框都是模式对话框。

非模式(modeless)对话框是一中当显示此对话框时,用户可以继续使应用程序工作的对话框。一些字处理程序中的Find对话框就是非模式对话框。

Delphi对话框(实际上就是任何Delphi窗体)是模式或非模式完全依赖它的显示方式,为了显示一个模式对话框,可以调用TForm的ShowModal方法,为了显示一个非模式对话框,就要调用TForm的Show方法。

 

创建对话框窗体

1、打开在“最简单的多重窗体的应用(Delphi)”中的示例程序,通过主菜单【File | Reopen】或者工具栏上“Open”按钮旁边的箭头按钮查看MRU(最近使用过的)清单,该清单分为上下两部分。顶端部分为最近使用过的5个工程,而底部显示的是最近使用过的10个文件,只需点击这些工程或文件,就可以重新打开此工程或文件,如下图:

2、打开Multiple工程后,我们将这个工程的MainForm的Caption属性修改为“About Dialog Forms Test Program”,btnShowForm2按钮的Caption属性修改为“Show About”;

3、通过工具栏的“View Forms”按钮或者按Shift + F12显示出SecondForm窗体,并将SecondForm窗体的BorderStyle属性修改为“bsDialog”,Caption属性修改为“About”;

4、在SecondForm窗体上放置一个Additional标签卡上的BitBtn按钮,并设置该按钮的Kind属性为“bkOK”,此时按钮的Caption属性自动改为了“OK”,而此时BitBtn按钮已经包含了点击OK按钮时关闭窗体的代码,如下:

5、回到MainForm窗体,双击“Show About”按钮,看看代码如下:

procedure TMainForm.btnShowForm2Click(Sender: TObject);
begin
  SecondForm.ShowModal; { 显示出SecondForm模式化窗口}
end;

6、按F9运行程序后,点击“Show About”按钮,出现About对话框,注意此对话框为模式对话框,并且不能缩放,如下:

Note

通用对话框(TOpenDialog、TSaveDialog、TFontDialog等等)不代表Delphi窗体建立的对话框,Windows提供这些对话框作为通过对话框集合,所有的Windows应用程序都可以用它,(实际上这些对话框包含在系统的comdlg32.dll文件中),VCL对话框类封装了此通用对话框,使它们用来起来很方便。

*以上代码均在Delphi 7中测试通过,示例代码下载:对话框窗体.rar


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi的未来,一点浅见发布时间:2022-07-18
下一篇:
Delphi中的变体Variant数组相关函数发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap