Zaawansowane programowanie w (pakiecie) Delphi

Podobne dokumenty
Arc Funkcja rysujca łuk elipsy wpisanej w prostokt o danych wierzchołkach i danych kocach łuku

Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków do plików, bitmapy pozaekranowe.

GRAFIKA PROGRAMOWANA W PASCALU ==================================

Aplikacje w DELPHI (cd..)

Wizualne systemy programowania. Wykład 11 Grafika. dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD

Dialogi, Memo i Image. Modified właściwość typu Boolean. Jest automatycznie ustawiana na True kaŝdorazowo po dokonaniu zmian treści wpisanej w Memo.

Szybkie tworzenie grafiki w GcIde

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

gdy wielomian p(x) jest podzielny bez reszty przez trójmian kwadratowy x rx q. W takim przypadku (5.10)

Jarosław Kuchta Podstawy Programowania Obiektowego. Podstawy grafiki obiektowej

STANDARYZACJA ZNAKU FIRMOWEGO. Latam z Katowic! Miêdzynarodowy Port Lotniczy KATOWICE

Pascal - grafika. Uruchomienie trybu graficznego. Moduł graph. Domyślny tryb graficzny

PROGRAMOWANIE GRAFIKI 2D W ŚRODOWISKU EMBARCADERO RAD STUDIO XE4 Z WYKORZYSTANIEM BIBLIOTEKI DirectX

Rys Mo liwe postacie funkcji w metodzie regula falsi

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Aplikacje w DELPHI (cd..)

Rozdział 9. Grupowanie komponentów Pola opcji i pola wyboru Komponenty grupujące Ramka TBevel...115

NS9W. NOWOή: Anemostaty wirowe. z ruchomymi kierownicami

1. Podstawy budowania wyra e regularnych (Regex)

Zaawansowane programowanie w (pakiecie) Delphi

Jak przygotować projekt

Zaawansowane programowanie w (pakiecie) Delphi

Podstawy Informatyki Wykład V

KLOCKI W OKIENKU

PREZENTACJA INFORMACJI FINANSOWEJ w analizach i modelowaniu finansowym. - dane z rynków finansowych DANE RÓD OWE

Stronicowanie na ¹danie

Ćw. I Projektowanie opakowań transportowych cz. 1 Ćwiczenia z Corel DRAW

Aplikacje w Delphi. Przykłady. Wydanie III

PRÓBNY EGZAMIN MATURALNY Z MATEMATYKI

Delphi podstawy programowania. Środowisko Delphi

ECDL Advanced Moduł AM3 Przetwarzanie tekstu Syllabus, wersja 2.0

Instalacja sterowników do urz¹dzeñ wielkoformatowych zainstalowanych w firmie Centrum Ksero STUDIO K2 s.c w Pile

Przedmowa Czêœæ pierwsza. Podstawy frontalnych automatów komórkowych... 11

Promocja i identyfikacja wizualna projektów współfinansowanych ze środków Europejskiego Funduszu Społecznego

ZNAK MARKI ZASADY STOSOWANIA

TYTUŁ DZIAŁU 01 OX SPIS TREŚCI LOGO 3 SYMBOLIKA MARKI 15 WERSJA PODSTAWOWA 3 WERSJE PODSTAWOWE: POZIOMA I PIONOWA 4 SIATKA MODUŁOWA 5

ER RATA do ksi¹ ki "Symfonia C++ Stan dard". wydanie 3. (Zawieraj¹ca tak e czysto kosmetyczne poprawki) Sporz¹dzona 4 paÿdziernika 2009.

NS8. Anemostaty wirowe. z ruchomymi kierownicami

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

InsERT GT Własne COM 1.0

WASM AppInventor Lab 3. Rysowanie i animacja po kanwie PODSTAWY PRACY Z KANWAMI

ZAAWANSOWANE PROGRAMOWANIE W (PAKIECIE) DELPHI

WNIOSEK O WYDANIE DECYZJI O ŚRODOWISKOWYCH UWARUNKOWANIACH ZGODY NA REALIZACJĘ PRZEDSIĘWZIĘCIA*

Obsługa programu Paint. mgr Katarzyna Paliwoda

GRAFIKA. Rodzaje grafiki i odpowiadające im edytory

Metoda LBL (ang. Layer by Layer, pol. Warstwa Po Warstwie). Jest ona metodą najprostszą.

ZA CZNIK C: FUNKCJE KLAWISZY I SPOSOBY WPROWADZANIA PARAMETRÓW

Kod źródłowy programu: program Grafika1; uses crt, graph; (1) var sterownik, tryb:smallint; (2)

Podstawy programowania sterowników GeFanuc

ZASADY REPRODUKCJI SYMBOLI GRAFICZNYCH PRZEDMOWA

Język programowania PASCAL

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

WZORU PRZEMYSŁOWEGO PL KREISEL - TECHNIKA BUDOWLANA SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ, Poznań, (PL)

TABLICOWE MIERNIKI ELEKTROMAGNETYCZNE TYPU EA16, EB16, EA17, EA19, EA12. PKWiU Amperomierze i woltomierze DANE TECHNICZNE

Stacjonarne Wszystkie Katedra Informatyki Stosowanej dr inż. Krzysztof Strzałkowski. Kierunkowy Nieobowiązkowy Polski Semestr piaty

Małopolskie Centrum Przedsiębiorczości Książka znaku

CorelDRAW. wprowadzenie

narzędzie Linia. 2. W polu koloru kliknij kolor, którego chcesz użyć. 3. Aby coś narysować, przeciągnij wskaźnikiem w obszarze rysowania.

TABLICOWE MIERNIKI ELEKTROMAGNETYCZNE TYPU EA16, EB16, EA17, EA19, EA12. PKWiU Amperomierze i woltomierze ZASTOSOWANIE

Tekst ozdobny i akapitowy

Program promocji wiedzy i dobrych praktyk w bran y technik os³onowych. v

PRÓBNY EGZAMIN MATURALNY Z MATEMATYKI

Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach.

Regulamin Krêgów Harcerstwa Starszego ZHR

Ćwiczenie 6 Proste aplikacje - podstawowe komponenty.

Technologie Informacyjne

PROGRAM: WYSZUKANIE LICZBY MAKSYMALNEJ

ROZPORZ DZENIE MINISTRA TRANSPORTU 1) z dnia r.

WYMIARY STRONY MIESIÊCZNIKA PULS (na przyk³adzie strony prawej)

SRC. Przepustnice systemu ró nicowania ciœnienia. Przeznaczenie

WZORU UŻYTKOWEGO ~ yi Numer zgłoszenia: S~\ T ^ i7

8. Dynamiczne generowanie grafiki, cz. 2

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

INSTRUKCJA U YTKOWNIKA DO KASY SHARP ER-A457P wersja oprogramowania: 27801RAR1C PROGRAMOWANIE FORMATU RAPORTÓW, KROK (PGM2)

NS9. Anemostaty wirowe. z ruchomymi kierownicami

Wykład VII PASCAL - grafika;

(0) (1) (0) Teoretycznie wystarczy wzi¹æ dowoln¹ macierz M tak¹, by (M) < 1, a nastêpnie obliczyæ wektor (4.17)

Moduł graph w Pascalu

Matematyka na szóstke

Podstawy Programowania 2

KSIĘGA IDENTYFIKACJI WIZUALNEJ

SYMBOLIKA FIRMOWA IDENTYFIKACJA WIZUALNA FIRMY

NUMER IDENTYFIKATORA:

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

created by ENIGMATIS POLSKA Identyfikacja wizualna

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

PRZEPIĘCIA CZY TO JEST GROźNE?

Literatura: do wykładu - dowolny podręcznik do języka C++ na laboratoriach - Borland C++ Builder

Obowiązki informacyjne i promocyjne dla beneficjentów RPO WM

SERI A 93 S E RI A 93 O FLUSH GRID WITHOUT EDGE TAB

Spis treści. 1. Znak Konstrukcja symbolu Budowa znaku Kolorystyka wersja podstawowa Kolorystyka wersja czarno-biała...

Prezentacja dotycząca sytuacji kobiet w regionie Kalabria (Włochy)

ZAAWANSOWANE PROGRAMOWANIE W (PAKIECIE) DELPHI

Wprowadzenie do systemu Delphi

PADY DIAMENTOWE POLOR

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

10. Figury p³askie. Uczeñ: 13) rozpoznaje wielok¹ty przystaj¹ce i podobne

OŚWIETLENIE PRZESZKLONEJ KLATKI SCHODOWEJ

SYSTEM IDENTYFIKACJI

Transkrypt:

DEL420 Zaawansowane programowanie w (pakiecie) Delphi Andrzej Marciniak Prezentacja multimedialna przygotowana za pomoc¹ systemu Corel Presentations 11 i X3 Copyright 2004-2010 by Andrzej Marciniak DEL-6(1 z 68)

Na poprzednim wyk³adzie... przygotowanie systemu pomocy dla programu okienkowego wyœwietlanie wskazówek do³¹czanie zbiorów pomocy i ich obs³uga w jêzyku Delphi Pascal przygotowanie zbiorów pomocy w edytorach tekstów w formacie RTF (skr. ang. Rich Text Format) tworzenie zbioru tematów (hase³) ³¹czenie tematów do³¹czanie rysunków i animacji kompilacja zbiorów pomocy do postaci.hlp (program Microsoft Help Workshop) tworzenie zbioru projektowego tworzenie zbioru zawartoœci DEL-6(2 z 68)

Na tym wyk³adzie... elementy jêzyka Delphi Pascal zwi¹zane z grafik¹ funkcje GDI typ TCanvas w³asnoœci typu TCanvas (Brush, ClipRect, CopyMode, Font, Pen, PenPos, Pixels) metody typu TCanvas (Arc, Chord, CopyRect, Draw, Ellipse, FillRect, FloodFill, FrameRect, LineTo, MoveTo, Pie, PolyBezier, PolyBezierTo, Polygon, Polyline, Rectangle, RoundRect, StretchDraw, TextHeight, TextOut, TextRect, TextWidth) DEL-6(3 z 68)

Elementy : GDI (skr. ang. Graphics Device Interface) czêœæ funkcji API œrodowiska Windows, które umo liwiaj¹ konstrukcje elementów graficznych w sposób niezale ny od urz¹dzenia (ang. device-independent graphics) typ klasowy TCanvas pêdzle (ang. brushes) pióra (ang. pens) kroje, czcionki (ang. fonts) palety (ang. palettes) typ TColor komponenty Shape, Chart i Image DEL-6(4 z 68)

GDI Grupa funkcji GDI zawiera wszystkie niezbêdne funkcje umo liwiaj¹ce rysowanie na powierzchni okien, m. in.: wypisywanie tekstów, rysowanie figur (kszta³tów), wyœwietlanie map bitowych DEL-6(5 z 68)

GDI oraz sterowanie elementami graficznymi, m. in. okreœlanie: krojów, kolorów, gruboœci linii i wykonywanie: cieniowania, skalowania, orientowania elementów graficznych w oknach. DEL-6(6 z 68)

GDI Dostêp do funkcji GDI z poziomu jêzyka Delphi Pascal jest mo liwy poprzez modu³ Windows. Schemat postêpowania: odczytanie (uzyskanie) tzw. kontekstu urz¹dzenia (ang. device context, w skrócie: DC) okienka, na którym ma byæ wykonana operacja graficzna, wykonanie jednej lub kilku operacji graficznych, zwolnienie kontekstu urz¹dzenia (brak wykonania tej operacji mo e doprowadziæ do przepe³nienia zasobów programowych). DEL-6(7 z 68)

GDI Przyk³ad (zmiana koloru piksela) var moj_dc : HDC; deklaracja zmiennej przechowuj¹cej kontekst urz¹dzenia (typ HDC jest zdefiniowany w module Windows poprzez typ Longword) moj_dc:=getdc(ident_okna); uzyskanie kontekstu urz¹dzenia dla komponentu (okienka) o identyfikatorze ident_okna (identyfikator ten jest wartoœci¹ w³asnoœci Handle typu HWND typ zdefiniowany te w module Windows poprzez typ Longword) SetPixel (moj_dc, 10, 10, RGB(255, 0, 0)); zmiana koloru piksela o wspó³rzêdnych (10, 10) na czerwony ReleaseDC (ident_okna, moj_dc); zwolnienie kontekstu urz¹dzenia DEL-6(8 z 68)

Typ TCanvas Typ TCanvas jest obejm¹ dla funkcji GDI (ang. canvas brezent, p³ótno, agiel). U ywanie tego typu nie wymaga odwo³ywania siê do kontekstu urz¹dzenia. Na komponentach (okienkach), które maj¹ w³asnoœæ Canvas mo na bezpoœrednio wykonywaæ operacje graficzne. Uwaga: W³asnoœæ Canvas jest okreœlona m. in. dla klas TForm i TGraphicControl (i tym samym dla wszystkich ich potomków). DEL-6(9 z 68)

Typ TCanvas Przyk³ad (wykonanie tej samej operacji, co poprzednio dla g³ównej formatki) Canvas.Pixels [10, 10]:=clRed; dostêp do w³asnoœci Pixels obiektu typu TCanvas (obiektem tym jest w³asnoœæ Canvas) i przypisanie mu wartoœci okreœlaj¹cej kolor (sta³e o przedrostku cl s¹ zdefiniowane w module Graphics) DEL-6(10 z 68)

Typ TCanvas W typie TCanvas s¹ m. in. zdefiniowane nastêpuj¹ce w³asnoœci umo liwiaj¹ce dostêp do kilku klas biblioteki VCL zwi¹zanych z grafik¹: Brush (typu TBrush), CopyMode (typu TCopyMode), Font (typu TFont), Pen (typu TPen), PenPos (typu TPoint), Pixels (w³asnoœæ tablicowa, dwuwymiarowa, typu TColor), ClipRect (typu TRect), DEL-6(11 z 68)

Typ TCanvas a ponadto m. in. metody: Arc, BrushCopy, Chord, CopyRect, Draw, DrawFocusRect, Ellipse, FillRect, FloodFill, FrameRect, LineTo, MoveTo, Pie, PolyBezier, PolyBezierTo, Polygon, Polyline, Rectangle, RoundRect, TextOut, TextRect. DEL-6(12 z 68)

Typ TCanvas Wskazówki dotycz¹ce korzystania z elemntów typu TCanvas: przy programowaniu Canvas wewn¹trz obiektu zawieraj¹cego tê w³asnoœæ kwalifikowanie poprzez obiekt nie jest konieczne innymi s³owy: mo na np. napisaæ Canvas.Rectangle (10, 10, 10, 10); zamiast np. Form1.Canvas.Rectangle (10, 10, 10, 10); jeœli u ywa siê komponentów, których nie trzeba deklarowaæ (bo deklaracje s¹ do³¹czane automatycznie w postaci pól do definicji typu klasowego), trzeba dla nich stosowaæ kwalifikowanie poprzez w³asnoœæ Canvas innymi s³owy: konstrukcji Image1.Canvas.Pen.Width :=5; nie mo na zast¹piæ konstrukcj¹ Image1.Pen.Width:=5; DEL-6(13 z 68)

Obiekty typu TBrush Obiekty tego typu (pêdzle) s¹ u ywane do wype³niania (malowania) wnêtrzy wielok¹tów, elips i te³ okien. Trzema g³ównymi w³asnoœciami s¹: Color, Style, Bitmap, a g³ówn¹ metod¹ Assign. DEL-6(14 z 68)

Obiekty typu TBrush W³asnoœæ Color Uwaga: Dla formatek i niektórych okienkowych elementów steruj¹cych wartoœæ w³asnoœci Color mo e byæ zmieniona w okienku Object Inspector. Przyk³ad okreœlenia koloru pêdzla dla obiektu typu TCanvas: Canvas.Brush.Color:=clRed; gdzie sta³a clred oznacza kolor czerwony. DEL-6(15 z 68)

Obiekty typu TBrush W³asnoœæ Color W³asnoœæ ta jest typu TColor (bêdzie na nastêpnym wyk³adzie). Predefiniowane sta³e (nie wszystkie) oznaczaj¹ce kolory s¹ zdefiniowane w module Graphics: clblack, clgreen, clgray, clsilver, clblue, clwhite, clmaroon (kasztanowy), clolive (oliwkowy), clnavy (granatowy), clpurple (purpurowy), clteal (?), cllime (jasnozielony), clfuchsia (jasnofioletowy), claqua (morski). DEL-6(16 z 68)

Obiekty typu TBrush W ³asnoœæ Style W ³asnoœæ okreœla wzorzec pêdzla. Przyk³ad okreœlenia wzorca: Canvas.Brush.Style:=bsCross; W³asnoœæ Style jest typu wyliczeniowego TBrushStyle, zdefiniowanego w module Graphics: type TBrushStyle = (bssolid, bsclear, bshorizontal, bsvertical, bsfdiagonal, bsbdiagonal, bscross, bsdiagcross); DEL-6(17 z 68)

Obiekty typu TBrush W ³asnoœæ Style Poszczególne elementy okreœlaj¹ wzorzec pêdzla: bssolid kolor jednolity, bscross bsclear przecinaj¹ce siê linie poziome i pionowe, wzorzec przeÿroczysty, bsdiagcross przecinaj¹ce siê linie przek¹tne w obu kierunkach, DEL-6(18 z 68)

Obiekty typu TBrush W ³asnoœæ Style Poszczególne elementy okreœlaj¹ wzorzec pêdzla: bsbdiagonal linie przek¹tne o kierunku pd-zach pn-wsch, bshorizontal linie poziome, bsfdiagonal bsvertical linie przek¹tne o kierunku pn-zach pd-wsch, linie pionowe. DEL-6(19 z 68)

Obiekty typu TBrush W ³asnoœæ Bitmap W³asnoœæ ta umo liwia okreœlenie w³asnego wzorca pêdzla (wzorzec ten okreœla siê w postaci mapy bitowej). Przyk³ad var Moj_Pedzel : TBitmap; Moj_Pedzel:=TBitmap.Create; Moj_Pedzel.LoadFromFile ( MojWzorzec.bmp ); Canvas.Brush.Bitmap:=Moj_Pedzel; Po u yciu pêdzla nale y wykonaæ instrukcje: Canvas.Brush.Bitmap:=nil; Moj_Pedzel.Free; DEL-6(20 z 68)

Obiekty typu TBrush Metoda Assign Metoda ta umo liwia skopiowanie zawartoœci jednego pêdzla do innego pêdzla. Przyk³ad (skopiowania zawartoœci pêdzla obiektu Image1 do pêdzla Moj_Pedzel) var Moj_Pedzel : TBrush; Moj_Pedzel:=TBrush.Create; Moj_Pedzel.Assign (Image1.Canvas.Brush); DEL-6(21 z 68)

Obiekty typu TPen Obiekty te (pióra) s¹ u ywane do rysowania linii i obrysu (zaznaczania brzegu) figur. G³ówne w³asnoœci: Color, Style, Width, W³asnoœæ Color i metoda Assign jak dla typu TBrush. Mode. G³ówna metoda: Assign. DEL-6(22 z 68)

Obiekty typu TPen W ³asnoœæ Style W ³asnoœæ ta okreœla wzorzec linii i jest typu wyliczeniowego TPenStyle zdefiniowanego w module Graphics: type TPenStyle = (pssolid, psdash, psdot, psdashdot, psdashdotdot, psclear, psinsideframe); DEL-6(23 z 68)

Obiekty typu TPen W ³asnoœæ Style Znaczenia poszczególnych elementów: pssolid psdash psdot psdashdot psdashdotdot psclear psinsideframe linia ci¹g³a, linia przerywana, linia kropkowana, linia symetrii (kreska, kropka), linia kreska, kropka, kropka, linia przezroczysta, linia ci¹g³a (elementu tego u ywa siê podczas rysowania w kolorze, który nie znajduje siê w tablicy kolorów œrodowiska Windows). Uwaga: Linie kropkowane i przerywane mog¹ mieæ tylko szerokoœæ jednego DEL-6(24 piksela. z 68)

Obiekty typu TPen W³asnoœæ Width W ³asnoœæ okreœla szerokoœæ linii w pikselach i jest typu Integer (dla wartoœci mniejszych od 1 przyjmuje siê 1). DEL-6(25 z 68)

Obiekty typu TPen W³asnoœæ Mode W³asnoœæ okreœla wzajemne oddzia³ywanie koloru pióra i koloru powierzchni rysowania (t³a). Typem w³asnoœci jest typ wyliczeniowy TPenMode (zdefiniowany w module Graphics): type TBrushStyle = (pmblack, pmwhite, pmnop, pmnot, pmcopy, pmnotcopy, pmmergepennot, pmmaskpennot, pmmergenotpen, pmmasknotpen, pmmerge, pmnotmerge, pmmask, pmnotmask, pmxor, pmnotxor); DEL-6(26 z 68)

Obiekty typu TPen W³asnoœæ Mode Znaczenia poszczególnych elementów s¹ okreœlane przez operacjê logiczn¹ na odpowiadaj¹cych sobie bitach kolorów pióra (P) i t³a (T): pmblack 0 (zawsze czarny), pmwhite 1 (zawsze bia³y), pmnop T (bez zmiany), pmnot not T (inwersja koloru t³a), pmcopy P ( zwyk³e rysowanie w kolorze pióra), pmnotcopy not P (inwersja koloru pióra), pmmergepennot P or not T, pmmaskpennot P and not T, DEL-6(27 z 68)

Obiekty typu TPen W³asnoœæ Mode Znaczenia poszczególnych elementów s¹ okreœlane przez operacjê logiczn¹ na odpowiadaj¹cych sobie bitach kolorów pióra (P) i t³a (T): pmmergenotpen not P or T, pmmasknotpen not P and T, pmmerge P or T, pmnotmerge not (P or T ) = not P and not T, pmmask P and T, pmnotmask not (P and T) = not P or not T, pmxor P xor T, pmnotxor not (P xor T). DEL-6(28 z 68)

Obiekty typu TFont Obiekty te s¹ u ywane do przedstawienia tekstu na ekranie. Podstawowe w³asnoœci: Color, Height, Size, Name, Style. W³asnoœæ Color jak poprzednio. DEL-6(29 z 68)

Obiekty typu TFont W³asnoœæ Height W³asnoœæ okreœla wysokoœæ kroju mierzon¹ w pikselach i jest typu Integer. W œrodowisku Delphi wysokoœæ jest zwi¹zana z rozmiarem (w³asnoœæ Size) zale noœci¹ kroj.height := kroj.size * kroj.pixelsperinch div 72 (jeœli wysokoœæ jest dodatnia, to rozmiar jest ujemny i na odwrót; zwykle dodatni jest rozmiar ). Uwaga: W³asnoœæ PixelsPerInch s³u y do przeliczania rozmiarów krojów ekranowych na rozmiary krojów drukarki. Nie powinna byæ ona zmieniana. DEL-6(30 z 68)

Obiekty typu TFont W ³asnoœæ Size Okreœla rozmiar kroju w punktach i jest typu Integer. Ujemna wartoœæ oznacza uwzglêdnienie wewnêtrznego odstêpu (tminternalleading), a dodatnia oznacza rozmiar znaków bez tego odstêpu (wysokoœæ w punktach litery x). tm* pola rekordu tagtextmetrics zdefiniowanego w module Windows, który okreœla charakterystyki kroju DEL-6(31 z 68)

Obiekty typu TFont W³asnoœæ Name Okreœla nazwê kroju w postaci ³añcucha AnsiString. Przyk³ad Canvas.Font.Name:= Arial ; DEL-6(32 z 68)

Obiekty typu TFont W ³asnoœæ Style Okreœla rodzaj pisma i jest typu zbiorowego TFontStyles, który jest zbiorem elementów typu wyliczeniowego TFontStyle: type TFontStyle = (fsbold, fsitalic, fsunderline, fsstrikeout); TFontStyles = set of TFontStyle; DEL-6(33 z 68)

Obiekty typu TFont W ³asnoœæ Style Poszczególne elementy oznaczaj¹: fsbold pismo pó³grube, fsitalic kursywê, fsunderline podkreœlenie, fsstrikeout przekreœlenie. Przyk³ad Canvas.Font.Style:=[fsBold, fsunderline]; DEL-6(34 z 68)

W³asnoœæ TCanvas.PenPos Okreœla aktualne po³o enie pióra i jest typu TPoint (zdefiniowanego w module Windows): type TPoint = record X, Y : Longint end; Bezpoœrednie przypisanie wartoœci polom rekordu PenPos jest równowa ne wywo³aniu metody MoveTo (bêdzie dalej). Wartoœæ w³asnoœci okreœla punkt pocz¹tkowy przy rysowaniu odcinka za pomoc¹ metody LineTo (te bêdzie dalej). DEL-6(35 z 68)

W³asnoœæ TCanvas.ClipRect Okreœla prostok¹t, wewn¹trz którego mo e wyst¹piæ rysunek (inaczej: okreœla prostok¹t obciêcia rysunku). W³asnoœæ ta jest typu TRect (zdefiniowanego w module Windows): type TRect = record case Integer of 0 : (Left, Top, Right, Bottom : Integer); 1 : (TopLeft, BottomRight : TPoint) end; DEL-6(36 z 68)

W³asnoœæ TCanvas.CopyMode W³asnoœæ podobna do w³asnoœci Mode typu TPen okreœla sposób kopiowania rysunków (map bitowych) na powierzchniê rysowania (t³o). Typem jej wartoœci jest typ TCopyMode zdefiniowany jako identyczny z typem Longint. Przy okreœlaniu wartoœci w³asnoœci nale y pos³ugiwaæ siê sta³ymi o przedrostku cm, które s¹ zdefiniowane w module Windows. DEL-6(37 z 68)

W³asnoœæ TCanvas.CopyMode Znaczenia sta³ych cm* (R bit koloru rysunku nak³adanego, T bit koloru rysunku istniej¹cego (t³a): cmblackness wype³nienie obszaru kolorem czarnym, cmdstinvert not T, cmmergecopy R and T, cmmergepaint not R or T, cmnotsrccopy not R, cmnotsrcerase not (R or T), cmpatcopy wzorzec (pêdzla), cmpatinvert wzorzec xor T, cmpatpaint (not R or wzorzec) or T, cmsrcand R and T (= cmmergecopy), cmsrccopy R (przyjmowane domyœlnie), cmsrcerase R and not T, cmsrcinvert R xor T, cmsrcpaint R or T, cmwhiteness wype³nienie obszaru kolorem bia³ym. DEL-6(38 z 68)

W³asnoœæ TCanvas.Pixels W³asnoœæ ta umo liwia albo odczytanie koloru piksela o danych wspó³rzêdnych (wewn¹trz prostok¹ta obciêcia), albo zmianê tego koloru. Przyk³ad Canvas.Pixels[10][10]:=clRed; DEL-6(39 z 68)

Rysowanie odcinków metody MoveTo i LineTo procedure MoveTo (X, Y : Integer); przesuniêcie aktualnej pozycji rysowania do punktu o wspó³rzêdnych (X, Y) Uwaga: Wywo³anie metody MoveTo jest równowa ne ustaleniu wartoœci w³asnoœci PenPos. procedure LineTo (X, Y : Integer); narysowanie odcinka od punktu okreœlonego wartoœci¹ w³asnoœci PenPos do punktu (X, Y) Uwaga: Metoda zmienia wartoœæ w³asnoœci PenPos bêdzie ona okreœla³a punkt ( X, Y). DEL-6(40 z 68)

Rysowanie krzywych metoda Polyline procedure Polyline (Points : array of TPoint); narysowanie ci¹gu odcinków przy u yciu bie ¹cego pióra Uwagi: 1) Metoda nie zmienia wartoœci w³asnoœci PenPos. 2) Aby narysowaæ wielok¹t, pierwszy punkt musi byæ identyczny z ostatnim. DEL-6(41 z 68)

Rysowanie krzywych metoda Arc procedure Arc (X1, Y1, X2, Y2, X3, Y3, X4, Y4 : Integer); narysowanie ³uku elipsy ograniczonej przez podany prostok¹t Elipsa jest ograniczona przez prostok¹t (znajduje siê w prostok¹cie) o przeciwleg³ych wierzcho³kach (zwykle: lewym górnym i prawym dolnym) o wspó³rzêdnych ( X1, Y1) i (X2, Y2). uk jest rysowany w kierunku przeciwnym do ruchu wskazówek zegara od punktu pocz¹tkowego do koñcowego. Punkt pocz¹tkowy jest punktem przeciêcia elipsy oraz prostej przechodz¹cej przez œrodek elipsy i punkt o wspó³rzêdnych (X3, Y3), a punkt koñcowy punktem przeciêcia elipsy i prostej przechodz¹cej przez œrodek elipsy i punkt ( X4, Y4). DEL-6(42 z 68)

Rysowanie krzywych metoda Arc procedure Arc (X1, Y1, X2, Y2, X3, Y3, X4, Y4 : Integer); narysowanie ³uku elipsy ograniczonej przez podany prostok¹t (X1, Y1) (X3, Y3) (X4, Y4) (X2, Y2) DEL-6(43 z 68)

Rysowanie krzywych metody PolyBezier i PolyBezierTo procedure PolyBezier (const Points : array of TPoint); narysowanie zestawu krzywych Béziera Metoda ta powoduje narysowanie krzywych Béziera trzeciego stopnia u ywaj¹c punktów pocz¹tkowego, koñcowego i kontrolnych okreœlonych parametrem Points. Pierwsza krzywa jest rysowana od pierwszego punktu do czwartego, a punkty drugi i trzeci s¹ jej punktami kontrolnymi. Ka da kolejna krzywa wymaga trzech nastêpnych punktów: dwóch punktów kontrolnych i punktu koñcowego (za pocz¹tkowy punkt tej krzywej przyjmuje siê punkt koñcowy poprzedniej krzywej). DEL-6(44 z 68)

Rysowanie krzywych metody PolyBezier i PolyBezierTo procedure PolyBezier (const Points : array of TPoint); narysowanie zestawu krzywych Béziera Points[0] Points[1] Points[2] Points[3] Points[5] Points[4] Points[6] DEL-6(45 z 68)

Rysowanie krzywych metody PolyBezier i PolyBezierTo procedure PolyBezier (const Points : array of TPoint); narysowanie zestawu krzywych Béziera Uwaga: Do przekazania tablicy punktów do metody PolyBezier jest wygodne u ywanie funkcji Slice. Na przyk³ad, w celu przekazania pierwszych 10 punktów z tablicy PointArray mo na zastosowaæ wywo³anie Canvas.PolyBezier (Slice(PointArray, 10)) ; DEL-6(46 z 68)

Rysowanie krzywych metody PolyBezier i PolyBezierTo procedure PolyBezierTo (const Points : array of TPoint); narysowanie zestawu krzywych Béziera i uaktualnienie wartoœci w³asnoœci PenPos Rysowanie jak poprzednio. Po zakoñczeniu rysowania w³asnoœci PenPos przypisuje siê wartoœæ ostatniego punktu koñcowego. DEL-6(47 z 68)

Rysowanie figur metoda Rectangle procedure Rectangle (X1, Y1, X2, Y2 : Integer); overload; procedure Rectangle (const Rect : TRect); overload; narysowanie prostok¹ta Prostok¹t jest rysowany lini¹ okreœlon¹ wartoœci¹ w³asnoœci Pen i wype³niany wzorcem okreœlonym przez wartoœæ w³asnoœci Brush. (X1, Y1) Pen Brush (X2, Y2) DEL-6(48 z 68)

Rysowanie figur metoda RoundRect procedure RoundRect (X1, Y1, X2, Y2, X3, Y3 : Integer); narysowanie prostok¹ta o zaokr¹glonych naro nikach Figura jest rysowana lini¹ okreœlon¹ przez wartoœæ w³asnoœci Pen i wype³niana wzorcem okreœlonym przez wartoœæ w³asnoœci Brush. DEL-6(49 z 68)

Rysowanie figur metoda RoundRect procedure RoundRect (X1, Y1, X2, Y2, X3, Y3 : Integer); narysowanie prostok¹ta o zaokr¹glonych naro nikach Naro nikami prostok¹ta s¹ punkty o wspó³rzêdnych ( X1, Y1), (X2, Y1), (X2, Y2) i (X1, Y2). Naro niki s¹ zaokr¹glone w taki sposób, e odpowiada to elipsie o szerokoœci X3 i wysokoœci Y3. Pen (X1, Y1) X3 Y3 Brush (X2, Y2) X3 DEL-6(50 z 68)

Rysowanie figur metoda FrameRect procedure FrameRect (const Rect : TRect); narysowanie prostok¹ta bez wype³niania jego wnêtrza Rect.TopLeft Brush Rect.BottomRight Uwaga: Brzeg prostok¹ta jest zaznaczony wzorcem okreœlonym przez wartoœæ w³asnoœci Brush. Aby narysowaæ ten brzeg wzorcem pióra, nale y zastosowaæ metodê Polygon. DEL-6(51 z 68)

Rysowanie figur metoda Polygon procedure Polygon (Points : array of TPoint); narysowanie ci¹gu odcinków wraz z po³¹czeniem koñca ostatniego z pocz¹tkiem pierwszego Powsta³y wielok¹t jest wype³niany wzorcem okreœlonym przez wartoœæ w³asnoœci Brush. Brzeg wielok¹ta jest rysowany lini¹ okreœlon¹ przez wartoœæ w³asnoœci Pen. Pen Points[0] Brush Points[4] Points[1] Points[3] Points[2] Uwaga: Aby narysowaæ wielok¹t bez wype³nienia, nale y zastosowaæ metodê Polyline. DEL-6(52 z 68)

Rysowanie figur metoda Ellipse procedure Ellipse (X1, Y1, X2, Y2 : Integer); overload; procedure Ellipse (const Rect : TRect); overload; narysowanie elipsy ograniczonej przez podany prostok¹t Wspó³rzêdne lewego górnego naro nika ograniczaj¹cego prostok¹ta s¹ równe ( X1, Y1), a prawego dolnego ( X2, Y2) (wspó³rzêdne te mo na tak e okreœliæ za pomoc¹ rekordu Rect). Brzeg elipsy jest zaznaczony lini¹ okreœlon¹ wartoœci¹ w³asnoœci Pen, a wnêtrze wype³nione wzorcem okreœlonym przez wartoœæ w³asnoœci Brush. DEL-6(53 z 68)

Rysowanie figur metoda Ellipse procedure Ellipse (X1, Y1, X2, Y2 : Integer); overload; procedure Ellipse (const Rect : TRect); overload; narysowanie elipsy ograniczonej przez podany prostok¹t (X1, Y1) Pen Brush (X2, Y2) Uwaga: Jeœli prostok¹t ograniczaj¹cy jest kwadratem, to zostanie narysowane ko³o. DEL-6(54 z 68)

Rysowanie figur metoda Chord procedure Chord (X1, Y1, X2, Y2, X3, Y3, X4, Y4 : Integer); narysowanie odcinka elipsy ograniczonej przez podany prostok¹t Sposób rysowania jak w metodzie Arc. Koñce powsta³ego ³uku s¹ ³¹czone odcinkiem. DEL-6(55 z 68)

Rysowanie figur metoda Chord procedure Chord (X1, Y1, X2, Y2, X3, Y3, X4, Y4 : Integer); narysowanie odcinka elipsy ograniczonej przez podany prostok¹t (X1, Y1) (X3, Y3) (X4, Y4) (X2, Y2) DEL-6(56 z 68)

Rysowanie figur metoda Pie procedure Pie (X1, Y1, X2, Y2, X3, Y3, X4, Y4 : Longint); narysowanie wycinka elipsy Elipsa jest okreœlona przez ograniczaj¹cy j¹ prostok¹t o wierzcho³kach (X1, Y1) i (X2, Y2). Rysowany wycinek jest ograniczony dwoma liniami przechodz¹cymi przez œrodek elipsy i punkty o wspó³rzêdnych (X3, Y3) i (X4, Y4). Brzeg wycinka jest rysowany lini¹ okreœlon¹ przez wartoœæ w³asnoœci Pen, a wype³niany wzorcem okreœlonym przez wartoœæ w³asnoœci Brush. DEL-6(57 z 68)

Rysowanie figur metoda Pie procedure Pie (X1, Y1, X2, Y2, X3, Y3, X4, Y4 : Longint); narysowanie wycinka elipsy (X1, Y1) (X3, Y3) Pen Brush (X4, Y4) (X2, Y2) DEL-6(58 z 68)

Wype³nianie obszarów metoda FillRect procedure FillRect (const Rect : TRect); wype³nienie prostok¹ta okreœlonego parametrem Rect wzorcem okreœlonym wartoœci¹ w³asnoœci Brush Rect.TopLeft Brush Rect.BottomRight DEL-6(59 z 68)

Wype³nianie obszarów metoda FloodFill procedure FloodFill (X, Y : Integer; Color : TColor; FillStyle : TFillStyle); wype³nienie powierzchni rysowania wzorcem okreœlonym wartoœci¹ w³asnoœci Brush Definicja typu TFillStyle (w module Graphics): type TFillStyle = (fssurface, fsborder); Granice obszaru wype³niania okreœla parametr Color. Wype³nianie rozpoczyna siê (we wszystkich kierunkach) od punktu (X, Y). DEL-6(60 z 68)

Wype³nianie obszarów metoda FloodFill procedure FloodFill (X, Y : Integer; Color : TColor; FillStyle : TFillStyle); Parametr FillStyle okreœla sposób interpretacji parametru Color: fssurface wype³nienie obszaru o kolorze okreœlonym przez parametr Color i zatrzymanie procesu fsborder w miejscu wyst¹pienia innego koloru, wype³nienie obszaru o kolorze innym ni Color i zatrzymanie procesu w miejscu wyst¹pienia koloru okreœlonego parametrem Color. Uwaga: Kolor w punkcie (X, Y) mo na okreœliæ za pomoc¹ w³asnoœci Pixels. DEL-6(61 z 68)

Wypisywanie tekstu metoda TextOut procedure TextOut (X, Y : Integer; const Text : string); wypisanie podanego ³añcucha od punktu (X, Y), a nastêpnie uaktualnienie wartoœci w³asnoœci PenPos zgodnie z koñcowym punktem tekstu DEL-6(62 z 68)

Wypisywanie tekstu metoda TextRect procedure TextRect (Rect : TRect; X, Y : Integer; const Text : string); wypisanie podanego ³añcucha wewn¹trz prostok¹ta obciêcia Rect Punkt (X, Y) okreœla lewy górny naro nik tekstu. Tekst, który nie mieœci siê w prostok¹cie Rect zostanie obciêty. DEL-6(63 z 68)

Wypisywanie tekstu metody TextHeight i TextWidth function TextHeight (const Text : string) : Integer; uzyskanie informacji o wysokoœci (w pikselach) podanego ³añcucha wzglêdem bie ¹cego kroju function TextWidth (const Text : string) : Integer; uzyskanie informacji o szerokoœci (w pikselach) podanego ³añcucha wzglêdem bie ¹cego kroju DEL-6(64 z 68)

Kopiowanie rysunku metoda CopyRect procedure CopyRect (Dest : TRect; Canvas : TCanvas; Source : TRect); skopiowanie czêœci obrazu z jednej powierzchni rysowania na inn¹ Dest okreœla prostok¹t bie ¹cej powierzchni (typu TCanvas), na któr¹ zostanie skopiowany rysunek, Canvas okreœla powierzchniê, z której rysunek zostanie Source pobrany, okreœla prostok¹t rysunku na powierzchni okreœlonej parametrem Canvas. Uwaga: Podczas kopiowania uwzglêdnia siê wartoœæ w³asnoœci CopyMode bie ¹cej powierzchni. DEL-6(65 z 68)

Do³¹czanie rysunków metody Draw i StretchDraw procedure Draw (X, Y : Integer; Graphic : TGraphic); wprowadzenie rysunku okreœlonego przez parametr Graphic na bie ¹c¹ powierzchniê rysowania Metoda ta wywo³uje metodê Draw rysunku okreœlonego parametrem Graphic. Rysunek jest umieszczany w taki sposób, e jego lewy górny naro nik na bie ¹cej powierzchni rysowania bêdzie znajdowaæ siê w punkcie ( X, Y). Rysunkiem mo e byæ mapa bitowa (ang. bitmap), piktogram (ang. icon) lub metazbiór (ang. metafile). Uwaga: Jeœli rysunkiem jest mapa bitowa, to uwzglêdnia siê wartoœæ w³asnoœci CopyMode. DEL-6(66 z 68)

Do³¹czanie rysunków metody Draw i StretchDraw procedure StrechDraw (const Rect : TRect; Graphic : TGraphic); wprowadzenie rysunku okreœlonego przez parametr Graphic w prostok¹cie okreœlonym parametrem Rect Metoda ta wywo³uje metodê Draw obiektu Graphic, którego rozmiar okreœla sposób dopasowania siê do prostok¹ta (otrzymany rysunek mo e byæ zmniejszony, powiêkszony lub mieæ zmieniony stosunek wysokoœci do szerokoœci. Rysunkiem mo e byæ mapa bitowa, piktogram lub metazbiór. Uwaga: Jeœli rysunek jest map¹ bitow¹, to zostanie uwzglêdniona wartoœæ w³asnoœci CopyMode. DEL-6(67 z 68)

to wcale nie jest takie trudne... DEL-6(68 z 68)