Grafika01


Grafika w delphi

Wiadomości teoretyczne na temat grafiki w języku Delphi - podstawowe właściwości klasy TCanvas

Operacje graficzne wykonujemy przez wykorzystanie właściwości i metod klasy TCanvas. Umożliwiają one:

Właściwość Canvas (płótno) typu TCanvas mają na przykład formularze i komponent Image oraz zmienna Printer umożliwiająca wydruk na drukarce.

Procedury graficzne mogą być wywoływane w procedurach obsługi zdarzeń, jako reakcja na naciśnięcie przycisku, etykiety itp. Dla zadań związanych z formularzem, wywołanie procedur graficznych należy umieszczać w procedurze OnPaint. W innym przypadku efekty procedur nie będą na formularzu widoczne.

Ważniejsze typy danych stosowane w procedurach graficznych

Typ TPoint zawarty jest w module Windows. Definicja typu:

TPoint = record

X: Longint;

Y: Longint;

end;

Ten typ określa położenie punktu na ekranie względem lewego górnego rogu ekranu. Jest wykorzystywany w definicji innych typów.

Użyteczna jest funkcja Point, która zamienia parę liczb na typ TPoint.

Przykład:

Dla zmiennej P zadeklarowanej jako TPoint

P:=Point (10,10) ustawia nr pola rekordu P.

Typ TRect zawarty jest w module Windows. Definicja typu:

TRect = record

case Integer of

0: (Left, Top, Right, Bottom: Integer);

1: (TopLeft, BottomRight: TPoint);

end;

Typ ten przedstawia współrzędne przeciwległych wierzchołków prostokąta, które mogą być rozumiane jako cztery liczby lub dwie zmienne typu TPoint.

Użyteczna w określaniu zmiennych tego typu jest funkcja Rect, która przekształca cztery liczby typu integer na typ TRect.

Przykład:

Dla zmiennej R zadeklarowanej jako TRect

R := Rect (10,10,100,100); ustawia wartości pól w rekordzie R.

Często ze zmiennymi typu TRect stosowana jest funkcja GetClientRect, która zwraca w postaci typu TRect aktualnie używany obszar graficzny.

Typ TGraphic zawarty jest w module Graphics.

Reprezentuje pliki graficzne w postaci bitmap, ikon, metapliki. Występuje w opisie parametrów procedur graficznych, ale stosowanie egzemplarzy tego typu sprowadza się do typów podrzędnych reprezentujących konkretny typ graficzny: TBitmap, TIcon TMetafile.

Typ TBitmap zawarty jest w module Graphics.

Typ pochodzący od TGraphics, umożliwia wykonywanie operacji na plikach graficznych: ładowanie z dysku, zapisywanie na dysk, kopiowanie, dostosowanie obrazu do podanych rozmiarów, przenoszenie, zmianę trybu wyświetlania itp.

Ponieważ jest to typ wskaźnikowy, do utworzenia zmiennej typu TBitmap należy wywołać kreator, a do likwidacji zastosować na przykład metodę Free.

Przykład:

Var Obraz: TBitmap;

Begin

//utworzenie zmiennej wskaźnikowej

Obraz:=TBitmap.Create;

//tu następuje np. ładowanie bitmapy z dysku

Obraz. LoadFromFile ('C:\Windows\słomiana mata.bmp');

//tu można zastosować zmienną Obraz w procedurach graficznych.

//zwolnienie zmiennej Bitmap

Obraz.Free;

end;

Wybór koloru pióra i wypełniacza

Właściwość Color możemy ustawić dla linii figury - odwołujemy się wtedy poprzez właściwość Pen.Color. W przypadku koloru wypełniacza odwołujemy się przez właściwość Brush.Color, a w przypadku koloru czcionki przez Font.Color.

Przykłady:

Forml.Canvas.Pen.Color:=clRed;

Forml.Canvas.Brush.Color:=clRed;

Wyprowadzanie tekstu w grafice

Operacje tekstowe w grafice wykonujemy poprzez właściwość Font typu obiektowego TFont.

Podstawowe właściwości klasy TFont dotyczące czcionki:

Color - oznacza kolor czcionki.

Przykład: Canvas.Font.Color:=clGreen;

Height - wysokość czcionki w pikselach.

Przykład: Canvas. Font. Height:=30;

Size - wysokość czcionki w punktach

Przykład; Canvas.Font,Size;=60

Style - określa styl czcionki, jest to właściwość typu zbiorowego, więc wartości podajemy w nawiasach [,] oddzielone przecinkami.

Dopuszczalne wartości: fsBold - gruby, fsltalic - pochyły, fsUnderline - podkreślony, fsStrikeOut - przekreślony. ,

Przykład: Canvas.Font.Style:=[fsStrikeout.fsItalic]

Podstawowe metody klasy TFont dotyczące wyprowadzanego tekstu:

procedure TextOut(X,Y:Integer, s:PString) - wyprowadzanie łańcucha s od punktu o współrzędnych (X, Y).

Przykład: Canvas.TextOut(200,200,'To napis');

function TextExtent(const Text: String):TSize - zwraca w pikselach wysokość i szerokość łańcucha znaków. Typ TSize jest rekordem o dwu polach: cX, cY typu Longint.

Przykłady:

Canvas.TextOut(200,200,'x='+IntToStr(Canvas.TextExtent('Q').cX));

//szerokość

Canvas.TextOut(250,200,'y='+IntToStr(Canvas.TextExtent('Q').cY));

//wysokość

function TextHeight(const Text: String): Integer; - zwraca wysokość łańcucha tekstowego - tę samą wielkość otrzymujemy przy zastosowaniu metody TextExtend(S).cY

function TextWidth(const Text: String):Integer - zwraca długość łańcucha tekstowego - tę samą wielkość otrzymujemy przy zastosowaniu metody TextExtend(S).cX

procedure TextRect(R: TRect; X,Y: Integer; const Text: String) - wpisuje tekst do prostokątnego obszaru reprezentowanego zmienną R typu TRect. Położenie prostokąta ustala punkt (X, Y) - lewy górny róg. Początek tekstu jest w lewym górnym rogu prostokąta. Tekst zostaje obcięty do rozmiarów prostokąta.

Przykład:

Procedure Tform1.FormPaint(Sender:Tobject);

Var

R: TRect;

Begin

R:= Rect(10,10,100,100);

Form1.Canvas.TextRect(R,10,10,'Witaj'):

Form1.Carwas.FrameRect(R); //ramka wokół prostokąta

End;

Zadanie l

Wyświetl inicjały w czterech rogach formularza, w prostokącie umieszczonym w środku wyświetl nazwisko i imię.

Zadanie 2

Dodaj możliwość wpisywania wymiarów formularza i jego położenia. Wykorzystaj do wpisywania 4 okienka edycyjne Edit, 4 etykiety do opisu tych okienek Label, przycisk Button, który będzie zatwierdzał nowe położenie ramki.

3



Wyszukiwarka

Podobne podstrony:
Grafika 2
Grafika komputerowa 2
Grafika 11
6 Grafika
Wykład I Grafika inżynierska cz2
Grafika komputerowa i OpenGL
lab grafika3D 7 Zadania
08 GIMP tworzenie grafiki na potrzeby WWW (cz1)
02 grafika inzynierska
12 GIMP tworzenie grafiki na potrzeby WWW (cz5)
ściąga grafika, PW Transport, Grafika inżynierska II
Automatyczne formatowanie dokumentu, informatyka, grafika
zadanie pl2, SGSP, I ROK, Grafika
egzamin-co-ma-byc, Semestr 3, Grafika i przetwarzanie obrazów
GIMP, SZKOŁA, Informatyka, Grafika Komputerowa
Link do stronki z zegarami, Kurs -Grafika

więcej podobnych podstron