我有一个小问题。
我认为必须有一个简单的方法,但我找不到关键字,所以请教我。
以下是问题:
例如,默认的ShowMessage弹出一个带“OK”按钮的窗口,然后程序会在您单击“确定”之前暂时停止。
这是有道理的,但问题是,在单击“确定”之前,您仍然可以与其他对象进行交互。
这肯定会导致这样的问题:
var
Count: Integer; //initial it to 1
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(IntToStr(Count));
Inc(Count);
end;
通过不关闭消息框,程序始终停在同一位置,变量保持不变。
如何锁定弹出窗口以便无法与其他对象进行交互?(如果您这样做,系统会强制您将焦点转回弹出窗口)
是否可以使用ShowMessage实现这一目标?
如果我能得到一些提示,将会有所帮助。
非常感谢。
编辑: 使用单位QDialogs.ShowMessage版本会导致非模态问题。小心那些你不熟悉的单位大声笑。
答案 0 :(得分:0)
ShowMessage显示模式对话框。换句话说,它会在对话框显示时禁用其拥有的窗口。因此,您无法与应用中的其他窗口进行交互。 ShowMessage已经做了你想做的事。
如果您在对话框显示时发现可以与应用程序中的其他窗口进行交互,那么您必须将窗口所有权设置错误。