Rozdział 11
[ Powrót ]
W tym rozdziale zajmiemy się grafiką. Przy programowaniu grafiki wykorzystywać będziemy klasę TCanvas. Jeżeli chcesz np., aby na formularzu wyświetlił się tekst - robisz coś takiego:
Canvas.TextOut(50,50,'Napis nr 1');
Dwa pierwsze parametry to (jak nietrudno się domyśleć) współrzędne X i Y napisu. W apostrofie umieszczony jest tekst który będzie wyświetlany na formularzu. Powyższy kod podstaw do procedury OnPaint głównego formularza. Jeżeli teraz uruchomisz program zauważysz, że rzeczywiście tekst jest, ale na białym tle. Przyznasz, ze nie wygląda to zachęcająco. Aby temu zapowiedz należy ustawić tło na przeźroczyste. Zrób więc coś takiego:
Canvas.Brush.Style:=bsClear;
Canvas.TextOut(50,50,'Napis nr 2');
Zanim ruszymy dalej poznaj funkcję klasy TCanvas.
Brush |
Kolor stosowany do wypełniania figur lub kolor pędzla. |
Pen |
Określa styl i kolor linii. |
PenPos |
Zawiera pozycje rysowania wyrażoną za pomocą X i Y |
BrushCopy |
Wyświetla bitmapę z przeźroczy tym tłem. |
Elipse |
Rysuje elipse |
LineTo |
Rysuje linie od punktu X do punktu Y |
MoveTo |
Wyznacza pozycję punktu rysowania. |
Rectangle |
Rysuje prostokąt. |
RoundRect |
Rysuje prostokąt z zaokrąglonymi narożnikami. |
TextOut |
Wpisuje tekst na płótnie. |
Oczywiście to tylko podstawowe funkcje. W procedurze np. OnPaint napisz słowo 'Canvas' i postaw kropkę. Poczekaj chwilę, powinna ukazać się lista z dostępnymi funkcjami.
Poeksperymentuj trochę z komponentem Shape (na palecie Additional). Możesz tam spokojnie dobierać kolory, style itp.
Oczywiście możesz także wyświetlić bitmapę i na niej umieścić jakiś tekst.
var
MojStyl : TBrushStyle;
Bitmap: : TBitmap;
begin
Bitmap:=TBitmap.Create;
Bitmap.LoadFromFile('C:\Image.bmp');
Bitmap.Draw(10,10,Bitmap);
MojStyle:=Canvas.Brush.Style;
Canvas.Brush.Style:=bsClear;
Canvas.TextOut(20,20,'Obrazek z wakacji :)');
Canvas.Brush.Style:=MojStyl;
Bitmap.Free;
end;
Objaśnienie: Na początku deklarujemy dwie zmienne: MojStyl i Bitmap. Pierwsza linia po begin oznacza stworzenie bitmapy. Kolejna ma za zadanie załadować bitmapę z określonej lokalizacji. Kolejna umieszcza ją na formularzu (współrzędne w tym wypadku wynoszą 10 i 10). Poźniej zmiennej MojStyl zostaje przypisany dotychczasowy styl. Robi się to po to, aby później nie trzeba było przywracać domyślnych ustawień, gdy chcesz stworzyć napis o innym stylu. W przedostanie i przedprzedostaniej następuje przywrócenie starego stylu i zwolnienie pamięci.
Funkcja DrawText
To jest trochę trudniejsza funkcja, której nie posiada klasa TCanvas. Pozwala ona na wpisanie tekstu w prostokąt i wyśrodkowanie ją w pionie i w poziomie. Najpierw zerknij na poniższy kod, a później wytłumaczę o co tu chodzi.
procedure TForm1.FormPaint(Sender: TObject);
var
R:TRect;
begin
Canvas.Brush.Color:=clBlue;
Canvas.Font.Color:=clWhite;
R:=Rect(20,20,300,80);
Canvas.Rectangle(20,20,300,80);
DrawText(Canvas.Handle,
'Funkcja DrawText',
-1,R,DT_SINGLELINE
or DT_VCENTER or DT_CENTER);
end;
Prawda, że bardziej skomplikowane? Zmienna typu Rect zawiera współrzędne prostokąta. Dwie pierwsze liczby określają współrzędne lewego górnego rogu, a dwie ostatnie prawego dolnego. Te współrzędne są wymagane, aby okreslić punkty w jakich wyświetlany będzie test. Następny parametr rysuje prostokąt na ekranie według powyższych wartości koloru wypełniania i czcionki. Następnie następuje narysowanie tekstu przy pomocy funkcji DrawText. Słowo Handle oznacza uchwyt urządzenia biblioteki Windows API. Omówienie tego w innych rozdziałach. Cyfra -1 oznacza liczbę znaków które zostaną wyświetlone. Wartość -1 oznacza wszystkie znaki. Kolejna wartość 'R' to wspomniany wcześniej prostokąt w którym narysowany będzie tekst. Ostatnie 3 parametry oznaczają wyświetlenie tekstu pośrodku w pionie i w poziomie oraz w jednej linii. To by było na tyle na dzień dzisiejszy. Dokończenie tego tematu kolejnym razem. Teraz zapraszam do następnego rozdziału w którym to zrobimy przeglądarke.
[ Powrót ]