我们正在研究Delphi 7.最近我们已经从Windows Server迁移到Windows 7.我们通过MessageBox处理应用程序中的所有错误消息。 MessageBox外观在Windows Server 2003和Windows 7中有所不同。请查看下面的屏幕截图,其中显示了Windows Server 2003和Windows 7的不同。
我们希望Windows 7消息框与Windows服务器一样显示。
答案 0 :(得分:4)
MessageBox
API由系统实施。它是Win32在user32模块中实现的对话框。所以你只是选择标准的Windows对话框。如果您尝试在Windows 7上复制旧的XP / 2003对话框,您的应用程序将显得不合适。
现在,如果你绝对不顾一切地复制XP / 2003外观,那么你就不能通过MessageBox
来做到这一点。您需要创建自己的对话框。创建表单。为图标添加TImage
,为文本添加标签,以及您需要的任何按钮。使用ShowModal
显示表单。实际上,Dialogs
单位有一个函数可以创建这样的表单CreateMessageDialog
。
var
MessageBoxForm: TForm;
....
MessageBoxForm := CreateMessageDialog('Your message goes here', mtError, [mbOK]);
Try
MessageBoxForm.ShowModal;
Finally
MessageBoxForm.Free;
End;
甚至还有一个简单的包装器允许这个单行:
MessageDlg('Your message goes here', mtError, [mbOK], 0);
这就是如何做你要求的但我不能认为这是一个好主意。时代在变,通常最好与时俱进。