我有一个实用程序对话框(非模态和保持在顶部),在使用应用程序时应始终可以访问(想想在使用应用程序时可用于记笔记的对话框)即使显示模态对话框。
无法更改应用程序的其余部分。
有可能吗?我该怎么办呢?
答案 0 :(得分:16)
调用ShowModal
时,将禁用所有现有顶级窗口。这就是模态的工作方式。如果您有一个合理的交互窗口,您只需要再次启用它。
例如,您可以将其添加到实用程序窗口:
type
TMyUtilityForm = class(TForm)
protected
procedure WMEnable(var Message: TWMEnable); message WM_ENABLE;
end;
....
procedure TMyUtilityForm.WMEnable(var Message: TWMEnable);
begin
if not Message.Enabled then
EnableWindow(Handle, True);
inherited;
end;
这将确保永远不会禁用您的实用程序窗口。