gpt4 book ai didi

delphi - 您可以覆盖对自定义 TForm/Dialog 的 MessageDlg 调用吗?

转载 作者:行者123 更新时间:2023-12-03 15:08:03 25 4
gpt4 key购买 nike

我一直在使用与此类似的代码

MessageDlg('', mtWarning, [mbOK], 0);

在我的整个项目中(感谢 GExperts 消息对话框工具:)),我想知道是否有人知道一种方法可以覆盖调用并显示我自己的自定义表单。

我能想到的唯一方法是用类似的东西创建一个新表单

function MessageDlg(const Msg: string; DlgType: TMsgDlgType;
Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
begin
//show my own code here
end;

并将我的每个使用列表放在对话框单元之前,但有没有一种有保证的方法来确保它使用我的代码而不是对话框单元代码。
我不喜欢将对话框单元复制到本地目录并对其进行更改的想法。

或者这一切都太麻烦了,我应该使用我自己的函数调用并用我自己的函数替换所有 MessageDlg 吗? (这不会很有趣,我可能过多地使用了 MessageDlg)

最佳答案

顺便说一句,您想将其添加到 use 子句中的 Dialogs 单元之后。

我认为你有三个选择:

  1. Dialogs 单元后面添加您自己的单元,该单元具有名为 MessageDlg 的方法,并且具有相同的签名来创建您自己的表单。
  2. 或者创建一个全新的方法或一组方法,使用您自己的表单创建特定的对话框。
  3. MessageDlg 进行全局搜索并替换为 DarkAxi0mMessageDlg,然后将您的 DarkAxi0mDialogs 单元添加到您的 use 子句中。

第一个是有问题的,因为您可能会错过一个单元,但仍然得到旧的 MessageDlg。第二种需要更多的使用,但从长远来看提供了更好的灵 active 。第三种可能是最简单的,而且缺点也最少。确保在进行替换之前进行备份,然后使用 diff 工具(如 Beyond Compare )来检查您的更改。

关于delphi - 您可以覆盖对自定义 TForm/Dialog 的 MessageDlg 调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/220254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com