Delphi专题 ·

Delphi任务对话框TTaskDialog类介绍

摘要

本文档详细介绍了TTaskDialog类,这个类封装了Microsoft Windows CTaskDialog类。
CTaskDialog是一个任务对话框,用于替换 windows Vista 或更高版本中的 windows 消息框。 CTaskDialog 改进了原始消息框并添加了功能,详见这里
本文来源于amingstudio.com。
Delphi任务对话框TTaskDialog类介绍 Delphi专题 第1张

详细介绍

下边,我们来详细介绍一下。

1、普通对话框

  • Caption:显示在标题栏上的文本。
  • Title:对话框的文本的标题。
  • Text:对话框的文本正文。
  • CommonButtons:对话框所显示的按钮类型,可以为1个或更多。例如:[tcbYes, tcbNo]
  • Execute:执行,显示对话框

标准用法

早于 Windows Vista 的 Windows 版本不支持CTaskDialog。 如果你想要向在早期版本的 Windows 上运行你的应用程序的用户显示一条消息,则必须编写备用对话框选项的程序。上边的代码如果用在Windows Xp以下系统,或视觉主题是禁用的,这个应用程序将会崩溃,所以我们需要改进一下。
Delphi任务对话框TTaskDialog类介绍 Delphi专题 第2张

对话框返回结果类型

CommonButtons属性是TTaskDialogCommonButtons类型,定义如下:

此属性确定对话框中显示的按钮(如果没有手动添加按钮,我们稍后将执行此操作)。如果用户单击这些按钮中的任何一个,那么一旦Execute返回,相应的TModalResult值就会存储在ModalResult属性中。MainIcon属性确定对话框中显示的图标,当然,它应该反映对话框的性质,按钮集也应该反映对话框的性质。形式上,MainIcon可以设置为tdiNone、tdiWarning、tdiError、tdiInformation和tdiShield的任何值。此外,还可以设置DefaultButton的值,此属性显示为为默认高亮按钮。
Delphi任务对话框TTaskDialog类介绍 Delphi专题 第3张

自定义按钮

当然,我们亦可以在任务对话框上添加自定义按钮。首先,设置CommonButtons属性为空,然后再添加一个自定义按钮(无限数量的按钮)。下面的的例子显示了这样的一个对话框:
Delphi任务对话框TTaskDialog类介绍 Delphi专题 第4张

命令链接按钮Command Links

任务对话框按钮可以是命令链接按钮command links,而不使用传统的按钮。此项通过设置tfUseCommandLinks属性实现。现在还可以设置CommandLinkHint(每个按钮)属性:
Delphi任务对话框TTaskDialog类介绍 Delphi专题 第5张

添加内容详情按钮对话框

可以使用ExpandButtonCaption属性添加一个按钮,同时使用ExpandedText属性添加一段文本。当按钮点击时,显示或者隐藏这段文本。
注:如果Flags标签内加入tfExpandFooterArea,文本将在下方显示,否则文本将在上方显示。
Delphi任务对话框TTaskDialog类介绍 Delphi专题 第6张

自定义图标对话框

通过使用 tfUseHiconMain标志并指定要在CustomMainIcon属性中使用的TIcon,可以在任务对话框中使用任何自定义图标。
Delphi任务对话框TTaskDialog类介绍 Delphi专题 第7张

超级链接

如果只想添加tfEnableHyperlinks标志,你可以使用类似HTML的超链接
Delphi任务对话框TTaskDialog类介绍 Delphi专题 第8张

注意:以上代码单击链接时不会发生任何事情,并不会转到链接的网页,链接的操作必须手动实现。如果在点击链接是想做一些事情,请响应OnHyperlinkClicked事件,它是一个TNotifyEvent。链接的URL(即a元素的href)存储在TTaskDialog的URL公共属性中。

  • 首先,要uses shellapi(如果使用api打开)
  • 在项目的public下部加入 procedure TaskDialogHyperLinkClicked(Sender: TObject);
  • 在TTaskDialog的OnHyperlinkClicked加入:OnHyperlinkClicked := TaskDialogHyperlinkClicked;

页脚

可以使用FooterText和FooterIcon 属性创建页脚。icon属性接受与MainIcon属性相同的值。
Delphi任务对话框TTaskDialog类介绍 Delphi专题 第9张

多选框CheckBox

使用TTaskDialog的VerificationText属性可以在页脚部分添加checkbox。
Delphi任务对话框TTaskDialog类介绍 Delphi专题 第10张

单元框Radio Buttons

单选按钮Radio Buttons的实现方式与添加自定义按钮(或命令链接按钮)的方式类似。
Delphi任务对话框TTaskDialog类介绍 Delphi专题 第11张

带进度条对话框

同样,可以在Flag标签中加入tfShowProgressBar添加一个进度条,或加入tfShowMarqueeProgressBar添加一个分段块进度条。
Delphi任务对话框TTaskDialog类介绍 Delphi专题 第12张

实现方法

  • 1、加入全局变量
  • 2、加入常量
  • 3、在Public下加入事件

主要代码:

相关下载

点击下载

参与评论