如何修改Delphi中Form.ShowModal的默认模式,使其结果成为长尾?

2026-04-10 19:022阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计338个文字,预计阅读时间需要2分钟。

如何修改Delphi中Form.ShowModal的默认模式,使其结果成为长尾?

在Delphi应用中,我创建了一个自定义的Yes/No/Cancel对话框,它从主窗口中调用,用于确认保存编辑的文件。通常是通过messageDlg()函数实现的,但我希望这个对话框具有自定义外观。

如何修改Delphi中Form.ShowModal的默认模式,使其结果成为长尾?

在我的Delphi应用程序中,我有一个自定义的Yes,No,Cancel对话框,它将从主窗体中调用,以确认保存对当前编辑的文件所做的更改.这通常是通过messageDlg()实现的,但我希望这个对话具有自定义外观,所以我试图通过以下方式实现此功能:

case myDialogue.showModal of mrYes: <<save changes>>; mrNo: <<quit application without saving changes>> mrCancel: <<set the closeAction to caNone and do nothing>> end;

问题是,默认情况下,表单通过返回mrNo TModalResult来响应按Escape键.你可以看到BAAAD是怎么回事,因为你的直觉告诉你,Esc-aping模态对话将取消预期的Quit应用程序进程,但实际上你会发出一个不保存任何更改命令和应用程序退出的情况.

直到我以这种方式失去了一个小时的工作,我才注意到这种行为.没有FormKeyPressed事件处理程序或任何响应按键的内容被放入myModalDialogue代码中.它只是如此工作,使用showModal显示的窗体中按Esc将返回mrNo.如何覆盖此默认行为?

您需要确保“否”按钮的“取消”属性为“假”,并且“取消”按钮的“取消”属性为“真”.
标签:

本文共计338个文字,预计阅读时间需要2分钟。

如何修改Delphi中Form.ShowModal的默认模式,使其结果成为长尾?

在Delphi应用中,我创建了一个自定义的Yes/No/Cancel对话框,它从主窗口中调用,用于确认保存编辑的文件。通常是通过messageDlg()函数实现的,但我希望这个对话框具有自定义外观。

如何修改Delphi中Form.ShowModal的默认模式,使其结果成为长尾?

在我的Delphi应用程序中,我有一个自定义的Yes,No,Cancel对话框,它将从主窗体中调用,以确认保存对当前编辑的文件所做的更改.这通常是通过messageDlg()实现的,但我希望这个对话具有自定义外观,所以我试图通过以下方式实现此功能:

case myDialogue.showModal of mrYes: <<save changes>>; mrNo: <<quit application without saving changes>> mrCancel: <<set the closeAction to caNone and do nothing>> end;

问题是,默认情况下,表单通过返回mrNo TModalResult来响应按Escape键.你可以看到BAAAD是怎么回事,因为你的直觉告诉你,Esc-aping模态对话将取消预期的Quit应用程序进程,但实际上你会发出一个不保存任何更改命令和应用程序退出的情况.

直到我以这种方式失去了一个小时的工作,我才注意到这种行为.没有FormKeyPressed事件处理程序或任何响应按键的内容被放入myModalDialogue代码中.它只是如此工作,使用showModal显示的窗体中按Esc将返回mrNo.如何覆盖此默认行为?

您需要确保“否”按钮的“取消”属性为“假”,并且“取消”按钮的“取消”属性为“真”.
标签: