【问题标题】:Allow user to select text in ShowMessage dialog允许用户在 ShowMessage 对话框中选择文本
【发布时间】:2015-04-08 12:33:09
【问题描述】:

我正在用 Delphi XE2 编写程序。在我的程序中的某一时刻,用户将看到输出文本,我通过一个简单的“showmessage('感兴趣的文本')”对话框显示。

如果用户愿意,我希望用户能够复制和粘贴此文本。这根本不是该计划的关键部分,但我知道他们能够这样做可能会很好。

目前,据我所知,无法从这种类型的消息框中选择全部或部分文本,这让我想到了我的问题:有没有办法让消息框成为文本可供用户选择,或者如果我想要此功能,我是否必须继续使用其他显示文本的方式?任何帮助将不胜感激。

【问题讨论】:

  • 消息框出现时按下或模拟 Ctrl+C 复制消息框标题、消息和按钮标题。
  • 您可以尝试无边框的不可编辑的编辑文本。 (因此它不再是默认的“这种类型的消息框”,您需要自己创建。)
  • 感谢@RawN!我知道这一点,它非常方便,但我怀疑我的用户不会在没有谷歌搜索的情况下知道这一点......我也许可以将它作为某种提示添加,但这似乎有点太多了。
  • @Jongware,谢谢,这可能就是我最终要做的!
  • 同意 - 如果此输出 必须 显示在模式对话框中(我怀疑这是否是最好的方法,但是......)然后明智的解决方案是自定义对话框带有一个额外的按钮,上面写着“复制”,单击时将文本复制到剪贴板。

标签: delphi dialog delphi-xe2


【解决方案1】:

当您调用ShowMessage 时,会显示一个系统消息对话框。此对话框不支持突出显示文本的各个部分。但是,对话框通过将对话框的全部内容放在剪贴板上来响应 CTRL + C

如果您绝对必须选择文本的各个部分,那么您需要使用 Delphi 控件自己创建对话框。

【讨论】:

  • 我真的希望他们能够选择单独的部分,所以我将自己创建对话框。感谢您的回复!
  • @MrKiloByte 打开 Dialogs.pas 并看看它今天在 Delphi 中是如何实现的,复制并更改您想要的内容。如果你保持相同的界面,你可以替换原来的对话框
  • 谢谢@JensBorrisholt,我会调查的!
  • 你有自己的 dialogs 版本。pas 创建一个新问题,我会帮你替换原来的对话框
猜你喜欢
  • 2012-09-23
  • 2021-11-25
  • 1970-01-01
  • 2017-02-25
  • 1970-01-01
  • 1970-01-01
  • 2020-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多