【发布时间】:2015-11-24 20:13:31
【问题描述】:
我使用 Firemonkey XE8 开发了一个 MacOS 应用程序,我注意到主窗体的 X 按钮实际上终止了应用程序,而不是隐藏/最小化它,因为它是大多数 MacOS 应用程序的默认行为。
为了解决这个问题,我在 FormCloseQuery 中添加了以下逻辑,以在有人单击 X 按钮时最小化应用程序:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
{$IFDEF MACOS}
if (Self.WindowState<>TWindowState.wsMinimized) then begin
Self.WindowState:=TWindowState.wsMinimized;
CanClose:=false;
end
else
CanClose:=true;
{$ENDIF MACOS}
end;
这可行,但副作用是如果有人右键单击 Dock 中的应用程序并选择退出,如果表单尚未最小化,则应用程序将被最小化。所以用户应该点击退出两次才能真正关闭应用程序。
有没有办法解决这个问题?关闭按钮应隐藏/最小化窗口,退出应终止应用程序。
【问题讨论】:
标签: delphi firemonkey delphi-xe8