当前位置:  开发笔记 > 编程语言 > 正文

你可以覆盖对Custom TForm/Dialog的MessageDlg调用吗?

如何解决《你可以覆盖对CustomTForm/Dialog的MessageDlg调用吗?》经验,为你挑选了1个好方法。

我一直在使用类似的代码

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

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

我能想到的唯一方法就是制作一个类似的新形式

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

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

或者这是多少工作,我应该只使用我自己的函数调用并用我自己的所有MessageDlg替换.(这不会很有趣,我错误地使用了MessageDlg)



1> Jim McKeeth..:

顺便说一下,你想在uses子句中的Dialogs单元之后添加它.

在我看来,你有三个选择:

    Dialogs单元之后添加您自己的单元,该单元具有名为MessageDlg的方法并具有相同的签名以创建您自己的表单.

    或者创建一个全新的方法或一组方法,使用您自己的表单创建特定的对话框.

    使用DarkAxi0mMessageDlgMessageDlg执行全局搜索和替换,然后将DarkAxi0mDialogs单元添加到uses子句中.

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

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有