我想隐藏我的整个应用程序,然后将其恢复到原来的状态(有点像最小化到托盘)。这包括所有打开的表格和包含的模态表格。它还应该隐藏每个表单的任务栏可见性。我可以隐藏 MainForm,但是其他表单和模态表单呢?动态隐藏所有表单并将它们恢复到原来的状态的最简单方法是什么?
问问题
7120 次
2 回答
8
调用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;
如果您有多个与任务栏关联的表单,您还需要隐藏这些表单才能从任务栏中删除按钮。
于 2013-08-08T10:51:11.890 回答
1
我不明白你的问题。如果我记得,子表单在任务栏中是不可见的。尝试在您的项目选项中更改表单可见性。
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);
于 2013-08-08T11:17:00.047 回答