隐藏Delphi中任务栏的应用程序不起作用

时间:2016-01-13 13:33:18

标签: delphi delphi-xe8

我希望我的应用程序最小化到系统托盘,而不是在任务栏上可见。我按照thisthis回答的建议,更改了项目来源中的MainFormOnTaskBar属性:

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.MainFormOnTaskBar := False;
  Application.Run;
end.

接下来我尝试了这个:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Self.Hide;
  WindowState := wsMinimized;
  TrayIcon1.Visible := True;
end;

和这个变种:

procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
begin
  Self.Hide;
  WindowState := wsMinimized;
  TrayIcon1.Visible := True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Application.Minimize;
end;

但托盘图标显示正确时,应用程序仍显示在任务栏中。我做错了什么?

1 个答案:

答案 0 :(得分:2)

David建议我在任务栏中看到的不是我的主要表单,而是我的应用程序。根据他的建议,我使用ShowWindow

隐藏了这一点
procedure TForm1.Button1Click(Sender: TObject);
begin
  Self.Hide;
  WindowState := wsMinimized;
  TrayIcon1.Visible := True;

  ShowWindow(Application.Handle, SW_Hide);
end;

问题解决了。谢谢,大卫。