Zdarza się czasami, że chcemy zapamiętać pozycję oraz rozmiar okna programu. Można to zrobić zapisując te dane do pliku ini, lub pliku konfiguracyjnego programu w jego własnym formacie. W artykule tym poruszymy problem zapisu pozycji oraz rozmiaru okna do rejestru.
Najpierw musimy zastanowić się, jaki klucz posłuży nam do zapisu tych wartości. Zgodnie z obowiązującymi normami, najlepszym i zarazem najbardziej domyślnym miejscem, które może nam posłużyć do zapisu, jest klucz :
HKEY_CURRENT_USER\Software\Firma\NazwaProgramu\Wersja
Oczywiście, zapisywanie pozycji powinno odbywać się przy zamykaniu formy, tak więc zdarzenie OnClose będzie do tego bardzo odpowiednim miejscem. Procedura zapamiętująca pozycję oraz rozmiary okna może wyglądać następująco :
procedure TForm1.FormClose(Sender: TObject;
var
Action: TCloseAction);
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('Software\Firma\NazwaProgramu\Wersja', True);
Reg.WriteInteger('Width', Width);
Reg.WriteInteger('Height', Height);
Reg.WriteInteger('Left', Left);
Reg.WriteInteger('Top', Top);
Reg.Free;
end;
Aby forma po każdym uruchomieniu programu miała rozmiar i położenie takie jak przy zamykaniu programu, musimy te informacje odczytać z rejestru przy tworzeniu bądź wyświetlaniu okna. Najbardziej korzystne jest zdarzenie OnCreate, gdyż wykonuje się ono tylko raz, przy uruchamianiu programu (chyba, że mamy dynamiczne formy). Przykładowa procedura odczytująca z rejestru pozycję oraz rozmiary okna może wyglądać następująco :
procedure TForm1.FormCreate(Sender: TObject);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
if not Reg.OpenKey('Software\Firma\NazwaProgramu\Wersja', False) then Exit;
Width := Reg.ReadInteger('Width');
Height := Reg.ReadInteger('Height');
Left := Reg.ReadInteger('Left');
Top := Reg.ReadInteger('Top');
Reg.Free;
end;
Należy oczywiście pamiętać o dodaniu do sekcji Uses modułu Registry, gdyż w programi używamy klasy TRegistry do zapisania oraz odczytania danych z rejestru Windows.
Aby dodać komentarz zaloguj się. Jeśli nie masz konta, załóż je sobie.
Tylko zarejestrowani użytkownicy mogą pisać komentarze.