gpt4 book ai didi

delphi - 在主窗体的 OnShow 中显示模态窗体时,主窗体不显示?

转载 作者:行者123 更新时间:2023-12-02 04:36:39 25 4
gpt4 key购买 nike

我创建了一个应用程序,其中主窗体在主窗体的 FormShow 事件上调用子窗体。显示子表单并提供两个选项可供选择。如果选择子表单上的第一个选项,则会显示一条消息,然后将显示主表单。现在,当应用程序第一次运行时,在子表单上选择选项后将显示 Meassage。但我想以主窗体作为背景显示消息。所以任何解决方案。下面是 FormShow 代码。

Procedure TMainForm.FormShow(Sender:TObject);
begin
if (SubForm.ShowModal = mrOK) and bOption1 then
begin
ShowMessage('Enter the value');
end;
end;

最佳答案

如果我理解正确,那么您的问题是,当消息框显示时,您的主窗体仍然不可见。

如果是这种情况,那么您有两个选择:

  1. 不要在主表单的 OnShow 事件中显示您的 SubForm,而是稍后显示
  2. 不要在 ShowModal 返回后立即显示消息,而是稍后显示

对于第 2 点,您可以使用我建议的类似方法 here ,使用PostMessage。所以你的代码看起来像这样:

procedure TMainForm.FormShow(Sender:TObject);
begin
if (SubForm.ShowModal = mrOK) and bOption1 then
begin
PostMessage(Self.Handle, WM_SHOWMYDIALOG, 0, 0);
end;
end;

WM_SHOWMYDIALOG 的处理程序随后显示实际消息。此方法也适用于第 1 点,请参阅 ain's answer .

PostMessage将一条消息发布到应用程序的消息队列,该消息将在主窗体变得可见后进行处理。

关于delphi - 在主窗体的 OnShow 中显示模态窗体时,主窗体不显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7094873/

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