我刚刚在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,这也没有帮助。
WindowState设置为wsMinimized,编辑器以某种方式随机执行。我只需将它设置为wsNormal就可以了。两个问题都解决了
frm_login.hide;
Application.MainFormOnTaskbar := false;
ShowWindow(Application.Handle, SW_SHOW);
frm_login是我的主要形式。 frm_menu没有创建。它将通过代码创建。