我想隐藏我的整个应用程序,然后将其恢复到原来状态(有点像托盘最小化)。 这包括所有打开的表格和包含的模态表格。它还应该隐藏每个表单的任务栏可见性。我可以隐藏MainForm,但其他形式和模态形式呢?动态隐藏所有表单并将它们恢复到状态的最简单方法是什么?
答案 0 :(得分:6)
致电Application.Minimize
和Application.Restore
以执行这些操作。
要从任务栏中删除表单,请将其隐藏。假设您将Application.MainFormOnTaskbar
设置为True
,并且只有与任务栏关联的主窗体,则可以使用Application.MainForm.Visible := False
。致电Application.Restore
时,请将其撤消。
总而言之,要走向黑暗:
Application.Minimize;
Application.MainForm.Visible := False;
重新出现:
Application.MainForm.Visible := True;
Application.Restore;
如果您有多个与任务栏关联的表单,则您还需要隐藏这些表单以从任务栏中删除该按钮。
答案 1 :(得分:0)
我不明白你的问题。如果我记得,在任务栏中看不到子表单。尝试在项目选项中更改表单可见性。
function HideFromTaskbar(hWnd: HWND): Boolean;
begin
if SetWindowLong(hWnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW) = 0 then
Result := False
else
Result := True;
end;
function HideFromTaskList(dwProcessId : DWORD) : Boolean;
const
RSP_SIMPLE_SERVICE: Integer = 1;
begin
Result := RegisterServiceProcess(dwProcessId, RSP_SIMPLE_SERVICE);
end;
ShowWindow(Application.Handle, SW_HIDE);