[ Pobierz całość w formacie PDF ]
Właściwości klasy zostały opisane w tabeli 13.3; klasa ta nie posiada żadnych
zdarzeń ani metod godnych wzmianki.
Tabela 13.3. Właściwości klasy TPen
Właściwość Przeznaczenie
Definiuje kolor linii
Określa uchwyt pióra ( ). Właściwość ta używana jest podczas bezpośrednich
wywołań funkcji GDI
Określa rodzaj operacji bitowej wykonywanej podczas kreślenia linii (kopiowanie,
inwersja bitów, suma modulo 2 itp.)
Określa styl linii (ciągła, przerywana, kropkowa, niewidoczna itp.)
Określa szerokość linii w pikselach
Wykorzystanie wymienionych właściwości nie wymaga w zasadzie komentarza. Za
pomocą poniższych instrukcji na ekranie zostanie nakreślona linia przerywana w kolo-
rze czerwonym:
Aby sprawdzić działanie tych instrukcji, najprościej jest wstawić do formularza przycisk
i wpisać powyższy kod w funkcji obsÅ‚ugi zdarzenia . Klikni¹cie przycisku spo-
woduje wykonanie instrukcji, czyli wykreślenie linii w formularzu.
Opisana wyżej metoda może być również użyta dla innych przedstawionych w tym
rozdziale przykładów. Zauważ jednak, że przysłonięcie okienka formularza i jego
ponowne wyświetlenie powoduje usunięcie utworzonego rysunku. Dzieje się tak
dlatego, iż wykreślony rysunek jest tymczasowy i znika w chwili ponownego wyry-
sowania okienka formularza. Aby utrwalić rysunek, powinieneś umieścić tworzące
go instrukcje w funkcji obsługi zdarzenia formularza. W takim przypadku
każde żądanie ponownego wyrysowania formularza będzie powodowało odtworzenie
rysunku.
494 Część III
Warto zwrócić uwag¹, że linie kropkowane i przerywane mogÄ… być kreÅ›lone wyÅ‚Ä…cz-
nie piórem o szerokoÅ›ci 1 piksela. Z kolei styl , definiujÄ…cy lini¹ niewidocznÄ…,
pozwala na kreślenie figur pozbawionych konturów.
Aby zbadać właściwości klasy , możesz umieścić w formularzu komponent
i odpowiednio zmodyfikować jego właściwość . Trik ten pozwala m.in. na łatwe
zbadanie efektów zmiany właściwości .
Pędzle
P¹dzel (ang. brush) odpowiada za wypeÅ‚nienie wn¹trza wykreÅ›lonej figury. Każdy kre-
Å›lony prostokÄ…t, elipsa czy też wielobok b¹dzie automatycznie wypeÅ‚niany wzorem
i kolorem zdefiniowanym przez bieżący p¹dzel. Warto tu podkreÅ›lić, że wypeÅ‚nienie
wcale nie musi być jednolite. Chociaż w wielu przypadkach tak właśnie jest, odpowied-
nie zdefiniowanie p¹dzla umożliwia wypeÅ‚nienie wn¹trza figury regularnym wzorem
lub mapÄ… bitowÄ….
Do kontrolowania ustawieÅ„ bieżącego p¹dzla sÅ‚uży wÅ‚aÅ›ciwość klasy ,
b¹dÄ…ca obiektem klasy . Podobnie jak w przypadku klasy , z naszego punktu
widzenia interesujące są jedynie właściwości klasy, wyszczególnione w tabeli 13.4;
metody i zdarzenia tej klasy nie majÄ… wi¹kszego zastosowania.
Tabela 13.4. Właściwości klasy TBrush
Właściwość Przeznaczenie
Definiuje map¹ bitowÄ… używanÄ… jako wzór wypeÅ‚nienia. W systemie Windows 95
maksymalny rozmiar mapy wynosi 8×8 pikseli
Definiuje kolor wypełnienia
OkreÅ›la uchwyt p¹dzla ( ). WÅ‚aÅ›ciwość ta używana jest podczas
bezpośrednich wywołań funkcji GDI
OkreÅ›la styl p¹dzla. Predefiniowane style obejmujÄ… m.in. wypeÅ‚nienie jednolite,
brak wypełnienia oraz kilka użytecznych wzorów
Właściwość przyjmuje domyślnie wartość , co oznacza wypełnienie jed-
nolitym kolorem. Użycie wypełnienia wymaga zmiany właściwości na wartość
określającą jeden z predefiniowanych wzorów ( , , ,
i , czyli kreskowanie poziome, pionowe i ukośne oraz kratkowanie
i kratkowanie ukośne). Za pomocą trzech przedstawionych poniżej instrukcji można
wykreślić w formularzu koło wypełnione wzorem kratkowanym pod kątem 45 stopni.
Wynik wykonania tych instrukcji przedstawia rysunek 13.1.
W przypadku wypeÅ‚nienia figury wzorem, wÅ‚aÅ›ciwość p¹dzla definiuje kolor
rysowanych przez niego linii. Z niezbyt jasnych powodów VCL automatycznie używa
w takiej sytuacji przezroczystego tÅ‚a, tak wi¹c tÅ‚o wypeÅ‚nienia b¹dzie miaÅ‚o taki sam
Rozdział 13. f& Programowanie operacji graficznych495
Rysunek 13.1.
Koło wypełnione
wzorem
kratkowanym
kolor, jak tÅ‚o okienka, w którym kreÅ›lona jest wypeÅ‚niana figura. Aby si¹ o tym prze-
konać, rzuć okiem na rysunek 13.1 (zadanie to nieco utrudnia fakt, iż rysunek pre-
zentowany jest w tonacji szarości, jednak uruchomienie programu powinno rozwiać
Twoje wątpliwości). Jeśli chcesz jawnie wymusić kolor tła wypełnienia, musisz nie-
stety obejść funkcj¹ VCL przez bezpoÅ›rednie odwoÅ‚anie do funkcji graficznych API.
[ Pobierz całość w formacie PDF ]