zoukankan      html  css  js  c++  java
  • Delphi的对话框窗体

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

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

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

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

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

    0081

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

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

    0082

    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个文件,只需点击这些工程或文件,就可以重新打开此工程或文件,如下图:

    0083

    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按钮时关闭窗体的代码,如下:

    0084

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

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

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

    0085

    Note

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

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

  • 相关阅读:
    第1组 团队Git现场编程实战
    第二次结对编程作业
    团队项目-需求分析报告
    团队项目-选题报告
    第一次结对编程作业
    第一次个人编程作业
    第一次博客作业
    2019 SDN上机第二次作业
    2019 SDN上机第一次作业
    软件工程第五次作业
  • 原文地址:https://www.cnblogs.com/pchmonster/p/2309722.html
Copyright © 2011-2022 走看看