窗口 OpenDialog 在德尔福其他形式的应用程序的背景中打开,如何将其放在前面



我在Delphi 5中使用OpenDialog。我的问题是它在我的申请表后面打开。我使用以下代码将我的申请表设置在顶部

if UpperCase(SmSession.ApplicationName) = 'MYAPP' then
begin
  Params.ExStyle := Params.ExStyle or WS_EX_TOPMOST;
  exit;
end

,因此窗口对话框可能位于后面。如何在不更改申请表代码的情况下将其放在前面?

这是我打开对话框的代码:

EditParent.OpenDlg.InitialDir := EditParent.FDefaultDir;
EditParent.OpenDlg.FileName := EditParent.FFileName;
if EditParent.OpenDlg.Execute then
Begin
  SplitFileDir(EditParent.OpenDlg.FileName, TmpDir, TmpFile);
  if EditParent.ShowOnlyFileName then
    EditParent.FileName := TmpFile
  else
    EditParent.FileName := EditParent.OpenDlg.FileName;
  EditParent.Directory := TmpDir;
  EditParent.SetPeerDirectoryBrowser;
End;
EditParent.OpenDlg.Free;
inherited Click;

结束;

我用于将应用程序窗口始终保持在顶部的此属性。Params.ExStyle := Params.ExStyle 或 WS_EX_TOPMOST;

现在我评论了这一行并使用了另一个以下属性 Params.ExStyle := Params.ExStyle 或 WS_EX_APPWINDOW;
Params.WndParent := GetDesktopWindow;
它有效。

最新更新