unit Rejestr;

interface
Uses
 System.Drawing, System.Collections, System.ComponentModel,System.Windows.Forms, System.Data,Microsoft.Win32;

  function CzytajUstawieniaOkna(okno: TWinForm; klucz: String):Boolean;
  function ZapiszUstawieniaOkna(okno: TWinForm; klucz: String):Boolean;
implementation
function CzytajUstawieniaOkna(okno: TWinForm; klucz: String):Boolean;
var rejestr: RegistryKey;
begin
rejestr:=Registry.CurrentUser.OpenSubKey(klucz);
if rejestr=nil then
  begin
    Result:=false;
    exit;
  end
else
  begin
    if rejestr.GetValue('Left')<>nil then
    okno.Left:=System.Convert.ToInt32(rejestr.GetValue('Left'));
    if rejestr.GetValue('Top')<>nil then
    okno.Top:= System.Convert.ToInt32(rejestr.GetValue('Top'));
    if rejestr.GetValue('Height')<>nil then
    okno.Height:=System.Convert.ToInt32(rejestr.GetValue('Height'));
    if rejestr.GetValue('Width')<>nil then
    okno.Width:=System.Convert.ToInt32(rejestr.GetValue('Width'));
    rejestr.Close;
    Result:=true;
  end
end;

function ZapiszUstawieniaOkna(okno: TWinForm; klucz: String):Boolean;
var rejestr: RegistryKey;
begin
rejestr:=Registry.CurrentUser.OpenSubKey(klucz);
if rejestr=nil then
begin
  try
    rejestr:=Registry.CurrentUser.CreateSubKey(klucz);
  except
    Result:=false;
    exit;
  end;
end;
rejestr.SetValue('Left',okno.Left);
rejestr.SetValue('Top',okno.Top);
rejestr.SetValue('Height',okno.Height);
rejestr.SetValue('Width',okno.Width);
rejestr.Close;
end;
end.
