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