在FormCreate之后没有触发FormShow事件,并隐藏;不会隐藏任务栏上的图标

问题描述 投票:2回答:2

我刚刚在Delphi应用程序中发现了一个奇怪的错误。当我运行应用程序时,任务栏显示图标,但我必须按它才能显示表单。通过在OnShow事件中设置断点,我发现当我单击任务栏上的图标时会触发OnShow事件。

此外,当我使用Hide;时,表单隐藏,但任务栏图标不会消失,但是当我点击它时,表单不再显示(这是重点,但任务栏图标不应该在那里隐藏)。

这是我的项目文件源,如果可能与它有关:

var
  PreviousHandle : THandle;
begin

  PreviousHandle := FindWindow('TfrmMain',APP_CAPTION);
  if PreviousHandle = 0 then
  Begin
  Application.Initialize;
  // So my Log and Mainform can overlap each other
  Application.MainFormOnTaskbar := False;
  Application.Title             := 'MyApp';
  Application.CreateForm(TfrmMain, frmMain);
  Application.CreateForm(TfrmLog, frmLog);
  Application.Run;
  End else
      begin
        SetForegroundWindow(PreviousHandle);
      end;

end.

我也试过禁用我的Skinning Engine,这也没有帮助。

forms delphi vcl show-hide
2个回答
1
投票

WindowState设置为wsMinimized,编辑器以某种方式随机执行。我只需将它设置为wsNormal就可以了。两个问题都解决了


0
投票
frm_login.hide;
Application.MainFormOnTaskbar := false;
ShowWindow(Application.Handle, SW_SHOW);

frm_login是我的主要形式。 frm_menu没有创建。它将通过代码创建。

© www.soinside.com 2019 - 2024. All rights reserved.