我希望我的应用程序最小化到系统托盘,而不是在任务栏上可见。我按照this和this回答的建议,更改了项目来源中的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;
但托盘图标显示正确时,应用程序仍显示在任务栏中。我做错了什么?
答案 0 :(得分:2)
David建议我在任务栏中看到的不是我的主要表单,而是我的应用程序。根据他的建议,我使用ShowWindow
procedure TForm1.Button1Click(Sender: TObject);
begin
Self.Hide;
WindowState := wsMinimized;
TrayIcon1.Visible := True;
ShowWindow(Application.Handle, SW_Hide);
end;
问题解决了。谢谢,大卫。