Ïðè ñîçäàíèè ïðèëîæåíèé, èñïîëüçóþùèõ ãðàôèêó, â Delphi ïðèìåíÿþòñÿ ñëåäóþùèå êëàññû: TCanvas (õîëñò, êàíâà, ïîâåðõíîñòü ðèñîâàíèÿ), TFont (øðèôò), TPen (ïåðî), TBrush (êèñòü).
Èçîáðàæåíèå ìîæíî ñòðîèòü, íàïðèìåð, íà ïîâåðõíîñòè ôîðìû ðàçëè÷íûìè èíñòðóìåíòàìè âî âðåìÿ âûïîëíåíèÿ ïðèëîæåíèÿ.  ýòîì ñëó÷àå èçîáðàæåíèå ïðåäñòàâëÿåò ñîáîé êîìáèíàöèþ ãðàôè÷åñêèõ ïðèìèòèâîâ (ïðîñòåéøèõ ôèãóð), òàêèõ êàê òî÷êà, ëèíèÿ, êðóã èëè ïðÿìîóãîëüíèê. Òàêæå âîçìîæåí âûâîä òåêñòà â ãðàôè÷åñêîì ðåæèìå. Ñèñòåìà Delphi ïðåäîñòàâëÿåò âîçìîæíîñòü ðèñîâàòü íà ïîâåðõíîñòè êîìïîíåíòîâ â ïðîöåññå âûïîëíåíèÿ ïðèëîæåíèÿ, åñòü òàêæå âîçìîæíîñòü ñîçäàâàòü äèàãðàììû.
Äëÿ âûïîëíåíèÿ îïåðàöèé ðèñîâàíèÿ íåîáõîäèìî èñïîëüçîâàòü êëàññ TCanvas. Îáúåêò Canvas ïðåäñòàâëÿåò ñîáîé õîëñò äëÿ îáúåêòîâ, êîòîðûå ñàìè ïðîðèñîâûâàþò ñâîå ñîáñòâåííîå èçîáðàæåíèå. Ñòàíäàðòíûå îêîííûå ýëåìåíòû óïðàâëåíèÿ, òàêèå êàê îäíîñòðî÷íûé ðåäàêòîð èëè ñïèñîê, íå òðåáóþò õîëñòà, òàê êàê îíè ðèñóþòñÿ ñðåäñòâàìè îïåðàöèîííîé ñèñòåìû Windows.
Èñïîëüçîâàíèå ñâîéñòâ, ñîáûòèé è ìåòîäîâ îáúåêòà Canvas îáåñïå÷èâàåò âîçìîæíîñòü:
– ñîçäàíèå èçîáðàæåíèé ñ ïîìîùüþ ñïåöèàëüíûõ îáúåêòîâ, òàêèõ êàê êèñòü, ïåðî è øðèôò;
– ðèñîâàíèÿ è çàëèâêè ðàçëè÷íûõ ôèãóð èëè ëèíèé;
– âûâîäà òåêñòà â ãðàôè÷åñêîì ðåæèìå;
– çàãðóçêè ãðàôè÷åñêèõ èçîáðàæåíèé èç ôàéëà;
– ïðîãðàììèðîâàíèå ðåàêöèè íà èçìåíåíèÿ â òåêóùåì èçîáðàæåíèè.
Ñ ïîìîùüþ åãî ñâîéñòâ è ìåòîäîâ ìîæíî è ðèñîâàòü íà ïîâåðõíîñòè âèäèìûõ îáúåêòîâ, êîòîðûå ñîäåðæàò ñâîéñòâî Canvas. Ýòî, íàïðèìåð, îáúåêòû òàêèõ êëàññîâ, êàê TBitmap, TComboBox, TDBComboBox, TDBGrid, TDBListBox, TForm, TImage, TListBox, TPaintBox, TPrinter è äð.
Ñâîéñòâî Canvas ïðåäñòàâëÿåò ñîáîé îáúåêò, êîòîðûé îáúåäèíÿåò â ñåáå ïîëå äëÿ ðèñîâàíèÿ è îáúåêòû ïåðà (Pen), êèñòè (Brush) è øðèôòà (Font). Ýòî ñâîéñòâî (Ñâîéñòâî Canvas) äîñòóïíî ïðè âûïîëíåíèè ïðîãðàììû, ïîýòîìó ïîëó÷àåìûå ñ åãî ïîìîùüþ ðèñóíêè, ÿâëÿþòñÿ äèíàìè÷åñêèìè è ñóùåñòâóþò òîëüêî â ïðîöåññå âûïîëíåíèÿ ïðèëîæåíèÿ. Ñîçäàâàåìûå ïðè âûïîëíåíèè ïðîãðàììû ðèñóíêè ìîãóò áûòü íåïîäâèæíûìè èëè àíèìàöèîííûìè, ò.å. èçìåíÿþùèìè ñâîè ðàçìåðû, ôîðìó è ðàñïîëîæåíèå.
Ïðè ïîìîùè îáúåêòà Canvas ìîæíî âîñïðîèçâîäèòü íà ôîðìå ëþáûå ãðàôè÷åñêèå îáúåêòû – êàðòèíêè, ìíîãîóãîëüíèêè, òåêñò è ò.ï. áåç ïðèìåíåíèÿ êëàññîâ TImage, TShape è TLabel (÷òî ïîçâîëÿåò èçáàâèòüñÿ îò èñïîëüçîâàíèÿ äîïîëíèòåëüíûõ ðåñóðñîâ). Îäíàêî ïðè ýòîì íåîáõîäèìî îáðàáàòûâàòü ñîáûòèå OnPaint òîãî îáúåêòà, íà êàíâå êîòîðîãî ïðîèçâîäèòñÿ ðèñîâàíèå.
|