gpt4 book ai didi

delphi - 在 Delphi TForm 上保存最大化和表单大小

转载 作者:行者123 更新时间:2023-12-03 14:46:01 24 4
gpt4 key购买 nike

这个问题看起来很简单,但由于某种原因我很难找到答案。

我有一个应用程序,可以将表单的大小和位置保存在 INI 文件中。这一切都很好,但是当您在最大化时关闭应用程序时,它将保存最大化表单的大小和位置,但不会保存其状态。

我的意思是,在下次运行时,表单将显示为最大化,而实际上它已“恢复”但覆盖了整个桌面。

有没有办法在最大化事件之前保存表单大小,然后保存表单最大化的事实。从 INI 文件读取时会创建处于最大化状态的表单并将其“恢复”大小设置为最大化事件之前的大小?

谢谢!

最佳答案

使用 Windows API 函数 GetWindowPlacement() ,就像这样:

procedure TForm1.WriteSettings(AUserSettings: TIniFile);
var
Wp: TWindowPlacement;
begin
Assert(AUserSettings <> nil);

if HandleAllocated then begin
// The address of Wp should be used when function is called
Wp.length := SizeOf(TWindowPlacement);
GetWindowPlacement(Handle, @Wp);

AUserSettings.WriteInteger(SektionMainForm, KeyFormLeft,
Wp.rcNormalPosition.Left);
AUserSettings.WriteInteger(SektionMainForm, KeyFormTop,
Wp.rcNormalPosition.Top);
AUserSettings.WriteInteger(SektionMainForm, KeyFormWidth,
Wp.rcNormalPosition.Right - Wp.rcNormalPosition.Left);
AUserSettings.WriteInteger(SektionMainForm, KeyFormHeight,
Wp.rcNormalPosition.Bottom - Wp.rcNormalPosition.Top);
AUserSettings.WriteBool(SektionMainForm, KeyFormMaximized,
WindowState = wsMaximized);
end;
end;

关于delphi - 在 Delphi TForm 上保存最大化和表单大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1194932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com