Canvas - płótno kartezjańskie.
Płótno jest obiektem klasy TCanvas i tak jak inne obiekty, ma swoje właściwości i metody. Canvas nie używa się jednak samego. Najczęściej jest to obiekt należący do innego obiektu, który służy mu jako powierzchnia do rysowania. Zawsze jednak jest to płótno niezależne od obiektu, który je posiada, dlatego wykreślanie grafiki odbywa się zawsze w podobny sposób. Pozwa to wykorzystywać ten sam kod do rysowania, niezależnie od tego gdzie pojawi się projektowany wzór. Canvas nie posiada własnej kontrolki na palecie komponentów dlatego posiada tylko właściwości ukryte, a oto niektóre z nich:
- Arc - przykład wywołania: 'Canvas->Arc(100, 100, 40, 40, 140, 140, 100, 100);', służy do rysowania łuku. W podanym przykładzie zostanie na formularzu narysowane koło.
Opis funkcji: Arc(int X1,int Y1,int X2,int Y2,int X3,int Y3,int X4,int Y4).
- Brush - określa właściwości kreślonego obszaru, samo niewiele znaczy wymaga podania dalszych parametrów.
- Brush->Color - przykład wywołania: 'Canvas->Brush->Color = clRed;'. W podanym przykładzie kreślony obszar będzie miał czerwony kolor.
- Brush->Bitmap - przykład użycia:
Graphics::TBitmap *BMP = new Graphics::TBitmap();
BMP->LoadFromFile(NazwaPliku);
Canvas->Brush->Bitmap = BMP;
Canvas->Rectangle(100, 100, 200, 200);.
W podanym przykładzie zostanie najpierw utworzony obiekt BMP, następnie zostanie do niego wczytany plik graficzy (akceptuje tylko bitmapy), a potem grafika zostaje przypisana jako tło kreślonego obszaru i na koniec zostaje wykreślony obszar w kształcie prostokąta (tutej będzie to kwadrat).
- Brush->Style - przykład wywołania: 'Canvas->Brush->Style = bsClear;', określa styl kreślonej powierzchni. W podanym przykładzie powierzchnia kreślenia będzie przeźroczysta. Przykład innych stylów:
- bsBDiagonal - kreśli na powierzchni ukośne linie,
- bsClear - obszar kreślony staje się przeźroczysty,
- bsCross - kreśli na powierzchni kratkę z poziomych i pionowych lini,
- bsDiagCross - kreśli na powierzchni kratkę z lini ukośnych,
- bsFDiagonal - podobnie jak bsBDiagonal z tą różnicą, że linie są kreślone w odwotnym kierunku,
- bsHorizontal - kreśli na powierzchni linie poziome,
- bsSolid - wypełnia kreślony obszar kolorem określonym w właściwości Brush->Color.
- bsVertical - kreśli na powierzchni linie pionowe.
- Chord - przykład wywołania: 'Canvas->Chord(100, 100, 140, 120, 200, 400);', działa podobnie do Arc z tą różnicą, że w kreślonym łuku od ostatniej współrzednej zostanie automatycznie poprowadzona linia do współrzędnej początkowej.
Opis funkcji: Chord(int X1,int Y1,int X2,int Y2,int X3,int Y3,int X4,int Y4).
- Draw - przykład użycia:
Graphics::TBitmap *BMP = new Graphics::TBitmap();
BMP->LoadFromFile(NazwaPliku);
Canvas->Draw(100, 100, BMP);
kreśli na powierzchni grafikę wczytaną do obiektu BMP (akceptuje tylko bitmapy).
Opis funkcji: Draw(int X,int Y,TGraphic *Graphic).
- Elipse - przykład wywołania: 'Canvas->Elipse(100, 100, 200, 300);', kreśli elipsę.
Opis funkcji: Elipse(int X1,int Y1,int X2,int Y2).
- LineTo, MoveTo - te dwie procedury służa do kreślenia lini, zawsze występują jedna po drugiej. Przykład użycia: 'Canvas->MoveTo(10, 10); Canvas->LineTo(100, 100);', zostanie wykreślona linia ukośna o początku zaczynającym się w punktach 10 i 10, oraz kończąca się w punktach 100 i 100. MoveTo określa początek lini, natomiast LineTo jej koniec.
Opis funkcji: MoveTo(int X,int Y)), LineTo(int X,int Y).
- Pen - to jest niewidzialne pióro, którego położenie można śledzić, samo jest obiektem TPen i właściwością płótna. Podobnie jak Brush samo niewiele znaczy posiada dodatkowe właściwości.
- Pen->Color - działa tak samo jak Brush->Color, czyli określa kolor kreślonego punktu, lini lub kształtu.
- Pen->Mode - przykład wywołania: 'Canvas->Pen->Mode = pmCopy;', określa tryb pióra. Dostępne style: pmBlack, pmCopy, pmMask, pmMaskNotPen, pmMaskPenNot, pmMerge, pmMergeNotPen, pmMergePenNot.
- Pen->Style - działa podobnie do Brush->Style, czyli określa styl pióra, posiada jednak inne style, przykład:
- psClear - kreśli przeźroczyste linie,
- psDash - kreśli linie przerywane,
- psDashDot - kreśli na przemian linie kropkowane i przerywane,
- psDashDot - kreśli na przemian linie przerywane, kropkowane, kropkowane,
- psDot - kreśli linie kropkowane,
- psInsideFrame - kreśli pełne linie wewnętrzne,
- psSolid- kreśli pełne linie.
- Pen->Width - przykład wywołania: 'Canvas->Pen->Width = 2;' określa rozmiar pióra.
- Pie - przykład wywołania: 'Canvas->Pie(100, 100, 200, 200, 50, 50, 300, 500);' rysuje wycinek koła.Opis funkcji: Pie(int X1,int Y1,int X2,int Y2,int X3,int Y3,int X4,int Y4).
- Pixels - przykład wywołania: 'Canvas->Pixels[10][100] = clRed;' określa kolor pojedyńczego piksela na powierzchni kreślonej. W podanym przykładzie piksel o współrzędnych X = 10 i Y = 100 przyjmie kolor czerwony.
- Polygon, Polyline - obydwu funkcji używa się tak samo do kreślenia niregularnych kształtów i lini, różnica między nimi polega na tym, że Polygon kreśli obszar o zadanym kształcie i wypełnia go kolorem, a ostatnia linia jest automatycznie prowadzona od punktu końcowego do punktu początkowego, natomiast Polyline kreśli tylko linie o zadanym kształcie nie wypełnia obszaru kolorem i nie prowadzi lini od punktu końcowego do początkowego. Przykład użycia:
Canvas->Polyline(OPENARRAY (TPoint, (
Point(150, 20),
Point(260, 100),
Point(220, 220),
Point(80, 220),
Point(40, 100))));
- Rectangle - przykład wywołania: 'Canvas->Rectangle(100, 100, 200, 300);' kreśli kształt prostokąta.
Opis funkcji: Rectangle(int X1,int Y1,int X2,int Y2).
- RoundRect - przykład wywołania: 'Canvas->RoundRect(100, 100, 200, 300, 10, 25);' kreśli prostokąt z zaokrąglonymi rogami, ostatnie dwie współżedne określają stopień zaokrąglenia.
Opis funkcji: Rectangle(int X1,int Y1,int X2,int Y2,int X3,int Y3).
- TextOut - przykład wywołania: 'Canvas->TextOut(10, 20, "Programowanie w Borland C++ Bilder");' kreśli na powierzchni tekst.
Opis funkcji: TextOut(int X1,int Y1,AnsiString Text).