我如何制作“演出消息”?对话框更宽,所以它适合文本?

时间:2015-10-23 12:43:07

标签: delphi dialog

我通过使用' Showmessage'来显示文件的保存位置。 (在Win 7中)。 当文件路径很长时,它会被截断并插入elipsis。 例如 路径

C:\Users\Admin\Documents\SubFolderOne\AnotherSubFolder\MyFile.csv

显示为

C:\Users\Admin\Documents\SubFolderOne\Ano...\MyFile.csv

有没有办法让消息框更宽并显示所有文件名和路径?

我读过这个 http://zarko-gajic.iz.hr/displaying-long-non-breakable-text-file-path-in-messagedlg-truncationellipsis-issues/ 这解释了一些推理并为TTaskDialog提供了一个相当不令人满意的方法,而且我也意识到我可以让自己的表单以与Showmessage相同的方式运行,但我想知道是否有一个更简单的解决方案只使用Showmessage。

2 个答案:

答案 0 :(得分:1)

  

使用ShowMessage只是一个更简单的解决方案吗?

没有。

我可以想到三种显而易见的方法,但无疑还有更多。

创建自己的对话

没有什么特别神奇的对话。您可以自己完美地创建它们,因此可以完全控制它们的外观。当然,缺点是很难匹配原生平台的外观。特别是当您考虑通常希望支持的所有不同Windows版本时。

使用CreateMessageDialog并自定义此Delphi表格

您可以调用RTL函数CreateMessageDialog以获取可用于显示消息对话框的Delphi表单。然后,您可以以任何方式自定义此对话框。

使用任务对话框API

Vista中引入的任务对话框API可以控制对话框宽度。致电TaskDialogIndirect,并为cxWidth指定非零值。

答案 1 :(得分:0)

在ShowMessage放置之前:

UseLatestCommonDialogs:= false;

我使用Delphi 10.2,它可以正常工作。