在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
窗体也可以用作对话框,实际上,对于用户来说,作为对话框的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 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论