www.mamboteam.com
Project1.pl Advertisement
Start arrow Artykuły arrow Praktyczne wykorzystanie Delphi arrow Zapamiętywanie rozmiaru oraz położenia formy
piątek, 12 marzec 2010
 
 
Menu główne
Start
Artykuły
FAQ
Download
Kontakt
Ciekawe linki
Forum
Mapa serwisu
Logowanie





Zapomniałeś hasła?
Nie masz konta? Załóż sobie
Zapamiętywanie rozmiaru oraz położenia formy Drukuj E-mail
Oceny: / 0
KiepskiBardzo dobry 
Napisał: Berl   
piątek, 17 luty 2006
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.
Komentarze

Aby dodać komentarz zaloguj się. Jeśli nie masz konta, załóż je sobie.
Tylko zarejestrowani użytkownicy mogą pisać komentarze.

 
wstecz   dalej »
LINKUJ PRO
Gościmy
Odwiedza nas 10 gości
Licznik odwiedzin
87139
 
Góra Góra