Witam.
Jestem początkującym w języku Delphi. Znalazłem sobie jakiś kurs, i przerabiam go próbując rozszerzać zadania na własną rękę.
Utknąłem w jednym punkcie, i głowię się z tym już trochę, nie mogąc znaleźć rozwiązania. Na chwilę obecną skończyły mi się już pomysły :(
Generalnie chodzi o to, że na formatce głównej mamy ListBox'a, i 2 RadioButton'y, oraz etykietkę. W ListBox'ie mamy wyróżnione kolory. Kliknięcie na kolorze ma powodować zmianę koloru tła okna głównego, LUB etykiety, a decyduje o tym odpowiednia opcja zaznaczona w RadioButton'ach.
Procedura która mi działa wygląda tak:
procedure TForm1.ListBox1Click(Sender: TObject);
begin
if rad_kolor_formatki_.checked = true then
case ListBox1.ItemIndex of
0: Form1.Color := ClYellow;
1: Form1.Color := ClRed;
2: Form1.Color := ClBlue;
3: Form1.Color := ClGreen;
4: Form1.Color := ClBlack;
end;
if rad_kolor_etykiety_.checked = true then
case ListBox1.ItemIndex of
0: lab_Etykietka_.Color := ClYellow;
1: lab_Etykietka_.Color := ClRed;
2: lab_Etykietka_.Color := ClBlue;
3: lab_Etykietka_.Color := ClGreen;
4: lab_Etykietka_.Color := ClBlack;
end;
end;
Ja jednak od początku miałem w głowie trochę inną wersję. Nie mogę jej jednak odpowiednio skomponować. Chciałem mianowicie zadeklarować jakąś zmienna wybor która będzie przyjmowała wartości Form1 lub lab_Etykietka_. Można by wówczas zmniejszyć trochę kod. Nie ma to oczywiście znaczenia dla tego "programu", lecz miała by na pewno dla bardziej rozbudowanego.
Próbowałem napisać coś takiego:
procedure TForm1.ListBox1Click(Sender: TObject);
begin
if rad_kolor_formatki_.checked = true then wybor := Form1;
if rad_kolor_etykiety_.checked = true then wybor := lab_Etykietka_;
case ListBox1.ItemIndex of
0: wybor.Color := ClYellow;
1: wybor.Color := ClRed;
2: wybor.Color := ClBlue;
3: wybor.Color := ClGreen;
4: wybor.Color := ClBlack;
end;
end;
przy czym wyżej deklarowałem zmienna wybor w części Implementation
var wybor : TObject;
Czy ktoś byłby w stanie pomóc mi sprawić żeby ten drugi kod zadziałał? W chwili obecnej wywala mi błąd, że "identyfikator Color przy zmiennej wybor nie zostal zadeklarowany". Przy innych moich wcześniejszych próbach miałem problemy z niekompatybilnością typów wybor oraz Form1 i lab_Etykietka_.
Domyślam się, że dla Was, "wyjadaczy z Delphi", nie będzie to żaden problem. Ja natomiast mam już niezły mętlik w głowie :)