【发布时间】:2013-11-05 06:14:13
【问题描述】:
我使用以下代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.visible := false;
Form2.show;
end;
是的,form1 被隐藏了,而 form2 出现了。但是为什么任务栏中的应用程序图标也被隐藏了......
我使用以下代码,仍然无法在任务栏上显示图标,同时隐藏了form1。
visible := false;
{
enable := false;
Application.MainFormOnTaskbar := True;
ShowWindow(Application.Handle, SW_SHOW);
SetWindowLong(Application.Handle, GWL_EXSTYLE, GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
}
当我想隐藏表单时,如何将应用程序图标保留在任务栏上?
我想在单元文件中进行,而不是在 DPR 文件中。
我想要保留系统任务栏的文件位于:http://sidhiciang.com/myfiles/ShowHideForms.rar
Unit1.pas
If Form1.btShowForm2Click() , then
Hide Form1 and Show Form2 ( actHideForm1execute(self)).
If Form1.btCloseForm1Click(), then
Close the application
Unit2.pas
If Form2.btShowForm3Click(), then
Hide Form2 and Show Form3 ( actHideForm2execute(self)).
If Form2.btCloseForm2Click(), then
Show the Form1 and Form2.close (actShowForm1execute(self))
Unit3.pas
If btCloseFrom3Click(), then
Show Form2 and Close Form3
在所有的 Unit1 / Unit2 / Unit3 中,保持任务栏上的应用程序图标可用。因为如果我使用 .visible := false,系统任务栏也会被隐藏。
PS:我使用 Delphi 2010 并在 Windows XP 和 7 环境上运行。
【问题讨论】:
-
任务栏上只显示可见的顶级窗口。您将主窗体放在任务栏上,因此当您隐藏它时,它会从任务栏中删除。我应该说将 MainFormOnTaskbar 设置为 False 就足够了。这将使用应用程序窗口作为任务栏窗口。
-
如果您发布真实代码会有所帮助。例如,当您说 enable := False 时,没有 enable 属性。如果您明确说明代码何时运行,也会有所帮助。仅在启动时,或在主窗体已经显示时。
-
仔细阅读我的评论。您只想在启动时执行此操作?或者在 main for 已经显示的地方。只要你能把问题说清楚,你就会得到答案。
-
好的,我添加 rar 文件(源代码)。我想隐藏已经显示的form1,所以当我点击按钮时,它将隐藏form1并显示form2,同时保持任务栏上的应用程序图标可用。
-
我明天才能看这个,但是你为什么不把表格最小化呢?
标签: delphi