0

我有一个小问题。

我想一定有一个简单的方法可以做到,但我就是找不到关键字,所以请教我。


这是问题:

例如,默认的 ShowMessage 会弹出一个带有“确定”按钮的窗口,然后程序会在您单击“确定”之前暂时停止。

这是有道理的,但问题是,在单击“确定”之前,您仍然可以与其他对象进行交互。

它肯定会导致一些这样的问题:

var
  Count: Integer; //initial it to 1

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(IntToStr(Count));
  Inc(Count);
end;

通过不关闭消息框,程序总是停在同一个地方,变量保持不变。

如何锁定弹出窗口,使您无法与其他对象交互?(如果这样做,系统会强制您将焦点转回弹出窗口)

是否可以使用 ShowMessage 实现这一目标?


如果我能得到一些提示会很有帮助。

非常感谢。


编辑:使用单元 QDialogs.ShowMessage 版本会导致非模态问题。当心那些你不熟悉的单位哈哈。

4

1 回答 1

0

ShowMessage 显示一个模式对话框。换句话说,它会在对话框显示时禁用其拥有的窗口。因此,您无法与应用程序中的其他窗口进行交互。ShowMessage 已经做了你想要的。

如果您发现在显示对话框时可以与应用程序中的其他窗口进行交互,那么您一定是窗口所有权错误。

于 2013-04-08T07:31:55.197 回答