![]() ![]() ![]() ![]() ![]() ![]() |
|||
|
KĄCIK DELPHI
Witam wszystkich w drugiej części
naszego kursu. Jak obiecałem zajmiemy się dziś konfiguracją (czyli jak
stworzyć dobrze prosperujące ustawienia programu). Aby nie przynudzać -
zaczynamy!
1. CZĘŚĆ WIZUALNA. Na formatce umieszczamy komponent groupbox, a w nim po dwa komponenty checkbox i radiobutton (jeden pod drugim). Obok naszych "opcji" wstawiamy dwa komponenty memo i ustawiamy właściwości pierwszego z nich: Visible i TabStop na False. Zmieńmy właściwość Caption komponentów checkbox na:
1- "Okno przykładowe",
2- "Kolory niestandardowe",
a radiobutton na:
1- "Kolor
czerwony",
2- "Kolor niebieski",
Poza tym, w komponencie checkbox1 zmieniamy
właściwość Checked na True,
a w komponentach radiobutton - Enabled
na False. W drugim komponencie memo
czyścimy zawartość właściwości Lines i zastawiamy go
w spokoju.
2. PISANIE KODU.
Na początek klikamy dwukrotnie na
komponencie checkbox1 i wpisujemy:
if
checkbox1.Checked then
begin memo2.Visible := True; end else begin memo2.Visible := False; end;
Proste nie? Jeżeli okienko jest
zaznaczone to komponent memo2 jest widoczny na formatce. Jeżeli nie jest
zaznaczony to nie widzimy komponentu.
Teraz klikamy na checkbox2
i...:
if
checkbox2.Checked then
begin radiobutton1.Enabled := true; radiobutton2.Enabled := true; radiobutton1click(sender); radiobutton2click(sender); end else begin radiobutton1.Enabled := false; radiobutton2.Enabled := false; memo2.Color := clwindow; end;
Już tłumaczę: Jeżeli okienko
jest zaznaczone to komponenty radiobutton są aktywne, jeżeli
nie jest zaznaczone to nie są, a komponent memo2 dostaje
pierwotnych kolorów. Uwagę Waszą na pewno przykuła procedura 'radiobutton#click(sender)'
. Otóż jest to odnośnik do kliknięcia na dany komponent (w tym wypadku radiobutton
z numerem #). Klikamy na radiobutton1 i wrzucamy taki kod:
if
radiobutton1.Checked then
begin memo2.Color := clred; end;
Cóż po zaznaczeniu nasze próbne
okno ma kolor czerwony. Kolej na radiobutton2:
if
radiobutton2.Checked then
begin memo2.Color := clblue; end;
To samo co wyżej, ale kolor jest
niebieski. Jak uruchomicie program to wszystko gra, ale... jeśli zmienicie
ustawienia i uruchomicie program od nowa to nic się nie zmienia, bo
wczytywane są z poziomu Delphi. Aby temu zaradzić wpisujemy w zdarzeniu OnClose
formatki taki kod:
memo1.Clear;
if checkbox1.Checked then begin memo1.Lines.Add('podgląd = 1'); end else begin memo1.Lines.Add('podgląd = 0'); end; if checkbox2.Checked then begin memo1.Lines.Add('colorn = 1'); end else begin memo1.Lines.Add('colorn = 0'); end; if radiobutton1.Checked then begin memo1.Lines.Add('color = 0'); end; if radiobutton2.Checked then begin memo1.Lines.Add('color = 1'); end; memo1.Lines.SaveToFile('options.cfg');
Na początku kasowana jest zawartość
komponentu memo1. Później kolejno zapisywane są linie
tekstu do pliku 'options.cfg'. Jeżeli checkbox1 jest
zaznaczony to zostanie dopisana linia 'podgląd = 1', jeżeli nie jest
zaznaczony to cyfra na końcu zamienia się na '0'. Tak samo wygląda sprawa z
checkbox2. Gdy zaznaczony jest radiobutton1
to wpisany tekst to 'color = 0', jeżeli zaznaczony jest radiobutton2
to 'color = 1'. Na końcu, jak już mówiłem całość jest zapisywana do
pliku. Aby zakończyć nasze wypociny musimy jeszcze dopisać do zdarzenia OnCreate
formatki te linie:
memo1.Clear;
memo1.Lines.LoadFromFile('options.cfg'); if memo1.Lines.Strings[0] = 'podgląd = 1' then begin checkbox1.Checked := true; checkbox1click(sender); end; if memo1.Lines.Strings[0] = 'podgląd = 0' then begin checkbox1.Checked := false; checkbox1click(sender); end; if memo1.Lines.Strings[1] = 'colorn = 1' then begin checkbox2.Checked := true; checkbox2click(sender); end; if memo1.Lines.Strings[1] = 'colorn = 0' then begin checkbox2.Checked := false; checkbox2click(sender); end; if memo1.Lines.Strings[2] = 'color = 0' then begin radiobutton1.Checked := true; radiobutton1click(sender); end; if memo1.Lines.Strings[2] = 'color = 1' then begin radiobutton2.Checked := true; radiobutton2click(sender); end;
No i tak: Na początek czyścimy
komponent memo1 i ładujemy do niego dane z pliku 'options.cfg'.
Następnie jeżeli pierwsza linijka tekstu brzmi 'podgląd = 1' to zaznaczany
jest komponent checkbox1. Gdy jest to 'podgląd = 0', to nie
zobaczymy witki w okienku tegoż komponentu. Działanie z komponentem checkbox2
jest taki sam, więc sobie go daruję. Jeżeli trzecia linijka to 'color = 0',
to zaznaczany radiobutton1. Jeżeli jest to 'color = 1', to
zaznaczany jest radiobutton2.
Mam nadzieję, że nie jest to
zbyt trudne na jakie się wydaje. W razie kłopotów, pytań mój mail to: adrian.slowik@wp.pl
| |||