Witam.
W moim programie chcę aby najpierw była ustawiana "skórka", która była ostatnio wybrana przez użytkownika. W tym celu stworzyłem zmienną globalną
kolorek:Integer;
której odpowiednio przy zmianie skórki będą nadawane wartości 1-4. Przy wyłączaniu programu informacja o wartości tej zmiennej byłaby zapisywana do rejestru. Wszystko mogłoby być pięknie, ale trzeba wziąć pod uwagę, że przy pierwszym uruchomieniu programu w rejestrze jeszcze nic nie będzie. Pomyślałem, że można by skorzystać z wyjątku i gdy odczyt z rejestru nie powiedzie się ustawić jakąś domyślną wartość zmiennej "kolorek". Niestety poniższy kod (fragment zdarzenia OnCreate formularza) nie chce działać:
try
try
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_CURRENT_CONFIG;
Reg.OpenKey('MOJPROGRAM\kolor',True);
kolorek:=Reg.ReadInteger('barwa');
finally
Reg.Free;
end;
Except
kolorek:=1;
Form1.Color:=clLime;
end;
Po włączeniu programu od razu wyskakuje błąd informujący, że nie można odczytać 'barwa' z rejestru (to oczywiste, jeszcze nie istnieje!), jakby program "nie widział" dodanego wyjątku.