📄 saveformsize.pas
字号:
unit SaveFormSize;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,Registry;
type
TSaveMode = (smPositionOnly, smSizeOnly, smAll);
TSaveFormSize = class(TComponent)
private
{ Private declarations }
Modus: TSaveMode;
FCompany: String;
FProduct: String;
FSubKey: String;
protected
{ Protected declarations }
public
{ Public declarations }
procedure Save;
procedure Load;
published
{ Published declarations }
property Company: String Read FCompany Write FCompany;
property ProductName: String Read FProduct Write FProduct;
property SubKey: String Read FSubKey Write FSubKey;
property SaveMode:TSaveMode Read Modus Write Modus;
end;
procedure Register;
implementation
var
Reg: TRegistry;
procedure Register;
begin
RegisterComponents('Samples', [TSaveFormSize]);
end;
procedure TSaveFormSize.Load;
var Key: String;
begin
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Key:='\SOFTWARE\';
if Trim(FCompany) <> '' then Key:=Key + FCompany;
if Trim(FProduct) <> '' then Key:=Key + '\' + FProduct;
if Trim(FSubKey) <> '' then Key:=Key + '\' + FSubKey;
if Reg.OpenKey(Key, True) then begin
if (Modus = smAll) or (Modus = smPositionOnly) then begin
if Reg.ValueExists(TForm(Owner).Name + '.Left') then
TForm(Owner).Left:=Reg.ReadInteger(TForm(Owner).Name + '.Left');
if Reg.ValueExists(TForm(Owner).Name + '.Top') then
TForm(Owner).Top:=Reg.ReadInteger(TForm(Owner).Name + '.Top');
end;
if (Modus = smAll) or (Modus = smSizeOnly) then begin
if Reg.ValueExists(TForm(Owner).Name + '.Width') then
TForm(Owner).Width:=Reg.ReadInteger(TForm(Owner).Name + '.Width');
if Reg.ValueExists(TForm(Owner).Name + '.Height') then
TForm(Owner).Height:=Reg.ReadInteger(TForm(Owner).Name + '.Height');
end;
if Reg.ValueExists(TForm(Owner).Name + '.State') then
TForm(Owner).WindowState:=TWindowState(Reg.ReadInteger(TForm(Owner).Name + '.State'));
end;
Reg.Free;
end;
procedure TSaveFormSize.Save;
var Key: String;
begin
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Key:='\SOFTWARE\';
if Trim(FCompany) <> '' then Key:=Key + FCompany;
if Trim(FProduct) <> '' then Key:=Key + '\' + FProduct;
if Trim(FSubKey) <> '' then Key:=Key + '\' + FSubKey;
if Reg.OpenKey(Key, True) then begin
if TForm(Owner).WindowState = wsNormal then begin
if (Modus = smAll) or (Modus = smPositionOnly) then begin
Reg.WriteInteger(TForm(Owner).Name + '.Left', TForm(Owner).Left);
Reg.WriteInteger(TForm(Owner).Name + '.Top', TForm(Owner).Top);
end;
if (Modus = smAll) or (Modus = smSizeOnly) then begin
Reg.WriteInteger(TForm(Owner).Name + '.Width', TForm(Owner).Width);
Reg.WriteInteger(TForm(Owner).Name + '.Height', TForm(Owner).Height);
end;
end;
Reg.WriteString(TForm(Owner).Name + '.Caption', TForm(Owner).Caption);
Reg.WriteInteger(TForm(Owner).Name + '.State', Ord(TForm(Owner).WindowState))
end;
Reg.Free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -