Program do mieszania kolorów w lazarus

Tym razem przedstawię Wam jak napisać prosty program który będzie mieszał podstawowe kolory:  czerwonyzielonyniebieski, efekt będzie widoczny na panelu. 

rp_Kolory_rgb_lazarus-288x300.png

Kolory będziemy mieszać za pomocą komponentu ScrollBar. Aktualne nasycenie będzie wyświetlane w komponencie Edit.  Kolor będzie wyświetlany w komponencie Panel. Potrzebujemy jeszcze komponent label do opisu kolorów. Więc zaczynamy od interfejsu programu, ja proponuje układ jak powyżej. Na formę wrzucamy:

Panel: zmieniamy jego kolor na czarny i usuwamy z niego tekst Panel1;

Label: w ilości 3 sztuk, zmieniamy napis (caption) kolejno na Czerwony, Zielony, Niebiski;

ScrollBar: w ilości 3 szt, zmieniamy właściwość max na 255;

Edit: również 3 szt, zmieniamy tekst na 0 (zero).

Przechodzimy teraz to pisania kodu. Pierwszy krok to do sekcji uses dopisujemy Windows, bez tego nam nie rozpozna co to jest RGB. Kolejny krok to zadeklarowanie zmiennych x, y, z w sekcji private, które będą odpowiadać za kolejno kolor czerwony, zielony i niebieski.

 x,y,z:Integer; 

Klikamy na komponent ScrollBar1 i zakładce zdarzenia dwukrotnie klikamy OnChange, po czym wpisujemy:

x:=ScrollBar1.Position;
Panel1.Color:=RGB(x,y,z);
edit1.Text := IntToStr(ScrollBar1.Position);

Tutaj przydało by się objaśnić coś nie co. Do zmiennej X przypisujemy pozycję ScrollBar1. Na panelu wyświetlany jest kolor, a w edit wyświetlamy pozycję. Użyta funkcja IntToStr służy to zmiany liczby w ciąg znaków tak najprościej ujmując. Teraz przechodzimy do ScrollBar2 i wpisujemy:

y:=ScrollBar2.Position;
Panel1.Color:=RGB(x,y,z);
edit2.Text := IntToStr(ScrollBar2.Position);

W ScrollBar3 wpisujemy:

z:=ScrollBar3.Position;
Panel1.Color:=RGB(x,y,z);
edit3.Text := IntToStr(ScrollBar3.Position);

Możemy teraz uruchomić nasz program i trochę się pobawić. Jest to najprostsza wersja zabawy z kolorami. Możemy trochę  nasz program rozbudować. Chcemy by po wpisaniu w komponencie edit pozycja suwaka się zmieniła i zarazem zmienił się kolor. Więc przechodzimy do komponentu edit1 w zakładkę zdarzenia i pozycja OnChange klikamy dwukrotnie i wpisujemy:

ScrollBar1.Position := StrToInt(Edit1.Text);

Tak samo robimy dla dwóch pozostałych komponentów z tym że zmieniamy ScrollBar1 i Edit1 na odpowiednio ScrollBar2 i Edit2 oraz ScrollBar3 i Edit3. Po uruchomieniu programu sprawdzamy czy działa prawidłowo. Po części tak. Gdy Edit pozostaje pusty program się wywala. Więc trzeba temu zaradzić. Posłużymy się mechanizmem obsługi wyjątków, która wygląda następująco:

try
//instrukcje mogące wywołać wystąpienie wyjątku
except
//instrukcje wykonywane w razie wystąpienia wyjątku
end;*

* pobranie ze strony http://4programmers.net/Delphi/Except

Więc poprawiamy nasz program i wpisujemy odpowiednio do OnChange w każdym komponencie Edit:

try ScrollBar1.Position := StrToInt(Edit1.Text); except
exit;
end;

Ponownie uruchamiamy i sprawdzamy poprawność działania naszego programu. Jak już wspomniałem program jest banalnie prosty, a zarazem jest dobrą bazą startową do rozbudowania programu o inne możliwości np. zmiana koloru RGB na kolor HTML lub na kolor w innym języku programowania.

Udostępnij na:

Przeczytaj również...


Dodaj komentarz

*