udialogsettings.pas

来自「Delphi编写的一个支持语法高亮显示和很多语言的文本编辑器」· PAS 代码 · 共 66 行

PAS
66
字号
unit uDialogSettings;

interface

uses UMyReg, Classes, SysUtils, Forms, stdCtrls, Windows, Controls;

procedure LoadOpts(AOwner: TForm);
procedure SaveOpts(AOwner: TForm);

implementation

procedure LoadOpts(AOwner: TForm);
var
  ini: TMyReg;
  strName: String;
  i: Integer;
begin
  strName := aOwner.ClassName;
  ini := TMyReg.Create;
  ini.OpenKey('Software\cEdit\Forms\' + strName, True);
  for i := AOwner.ComponentCount - 1 downto 0 do begin
    if AOwner.Components[i] is TCheckBox then (AOwner.Components[i] as TCheckBox).Checked := ini.ReadReg(AOwner.Components[i].Name, False)
    else if (AOwner.Components[i] is TRadioButton) then (AOwner.Components[i] as TRadioButton).Checked := ini.ReadReg(AOwner.Components[i].Name, False)
    else if (AOwner.Components[i] is TControl) then begin
      With (Aowner.Components[i] as TControl) do begin
        Top := ini.ReadReg(Name + 'Top', Top);
        Height := ini.ReadReg(Name + 'Height', Height);
        Left := ini.ReadReg(Name + 'Left', Left);
        Width := ini.ReadReg(Name + 'Width', Width);
      end;
    end;
  end;
  Aowner.Left := ini.ReadReg('Left', 300);
  Aowner.Top := ini.ReadReg('Top', 300);
  ini.Destroy;
end;

procedure SaveOpts(AOwner: TForm);
var
  ini: TMyReg;
  strName: String;
  i: Integer;
begin
  strName := aOwner.ClassName;
  ini := TMyReg.Create;
  ini.OpenKey('Software\cEdit\Forms\' + strName, True);
  for i := AOwner.ComponentCount - 1 downto 0 do begin
    if AOwner.Components[i] is TCheckBox then ini.WriteBool(AOwner.Components[i].Name, (AOwner.Components[i] as TCheckBox).Checked)
    else if (AOwner.Components[i] is TRadioButton) then
      ini.WriteBool(AOwner.Components[i].Name, (AOwner.Components[i] as TRadioButton).Checked)
    else if (AOwner.Components[i] is TControl) then begin
      With (Aowner.Components[i] as TControl) do begin
        ini.WriteInteger(Name + 'Top', Top);
        ini.WriteInteger(Name + 'Height', Height);
        ini.WriteInteger(Name + 'Left', Left);
        ini.WriteInteger(Name + 'Width', Width);
      end;
    end;
  end;
  ini.WriteInteger('Left', AOwner.Left);
  ini.WriteInteger('Top', Aowner.Top);
  ini.Destroy;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?