我有一个使用以下内容创建的模态对话框:
procedure TFormCompose.createParams(var Params: TCreateParams);
begin
inherited createParams(Params);
with Params do begin
exStyle:=exStyle or WS_EX_APPWINDOW;
wndParent:=getDesktopWindow;
end;
end;
在这种形式中,我创建了一个TOpenDialog实例。当它打开时,它会在主应用程序窗口后面发送我的第一个模态对话框。
有没有办法在不影响模态对话框的Z顺序的情况下打开TOpenDialog?
谢谢!
答案 0 :(得分:5)
您使用的是哪个版本的Delphi? Delphi 2007及以上添加了一个重载的TOpenDialog.Execute(ParentWnd:HWND);
在调用Execute()时将模态对话框的句柄作为ParentWnd传递为了将来参考,请确保指定哪个版本的Delphi。例如,适用于Delphi 2009的答案,如果您使用的是Delphi 5,对您来说没什么用处,并且对于提供答案的人来说是浪费时间。