Примеры


Восстановление положения на экране

При каждом закрытии формы записываем в реестр местоположение формы на экране. А при каждом открытии читаем из реестра эти значения и устанавливаем соответствующие свойства формы. Не забудьте имя модуля Registry в строке uses.

uses
…, Registry;
const
MyKey = '\Software\NameMyCompany\NameMyProgram\Ver 1.0';
MyLocatL = 'LocationLeft';
MyLocatT = 'LocationTop';
MyLocatH = 'LocationHeight';
MyLocatW = 'LocationWidth';
var
Form1: TForm1;
r : TRegistry;
procedure WriteMyKey;
begin
r.OpenKey(MyKey,True);
r.WriteInteger(MyLocatL,Form1.Left);
r.WriteInteger(MyLocatT,Form1.Top);
r.WriteInteger(MyLocatH,Form1.Height);
r.WriteInteger(MyLocatW,Form1.Width);
r.CloseKey;

end;

procedure ReadMyKey;

begin
if r.KeyExists(MyKey) then begin
r.OpenKey(MyKey,False);
Form1.Left:=r.ReadInteger(MyLocatL);
Form1.Top:=r.ReadInteger(MyLocatT);
Form1.Height:=r.ReadInteger(MyLocatH);
Form1.Width:=r.ReadInteger(MyLocatW);
r.CloseKey;

end;

end;

procedure TForm1.FormCreate(Sender:TObject);

begin
r:=TRegistry.Create;
ReadMyKey;
r.Free;

end;

procedure TForm1.FormClose(Sender:TObject; var Action:TCloseAction);

begin
r:=TRegistry.Create;
WriteMyKey;
r.Free;

end;


Сохранение каталога запуска

При каждом запуске проверяем, имеется ли в строке LocationDir имя каталога запуска вместе с именем программы. Если нет, то дописываем его.

const
MyKey = '\Software\NameMyCompany\NameMyProgram\Ver 1.0';
MyLocatDir = 'LocationDir';
var
Form1: TForm1;
r : TRegistry;

procedure CheckMyKey;
var s,t:string;

begin
s:='';
t:=ParamStr(0);
r.OpenKey(MyKey,True);
if r.ValueExists(MyLocatDir) then
s:=r.ReadString(MyLocatDir);
if pos(t,s)=0 then
r.WriteString(MyLocatDir,s+t+';');

r.CloseKey;

end;

procedure TForm1.FormCreate(Sender:TObject);

begin
r:=TRegistry.Create;
CheckMyKey;
r.Free;

end;


main_back.gif (3425 bytes)

Используются технологии uCoz