HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

TPen és TBrush osztályok használata


Canvas objektum 8. rész

Példaprogram letöltése

7827 bájt

A sorozat előző részeiben többször volt már szó a Pen és Brush property-kről. Most elérkezett a pillanat, hogy részletesen is megismerkedjünk ezekkel, valamint egy olyan eljárással, amellyel egy tetszőleges alakzatot festhetünk ki.
A TPen osztály elsősorban az alakzatok körvonalának tulajdonságait meghatározó property-ket tartalmaz. A Color property a vonal színét, a Width pedig a vastagságát határozza meg. A Style property a vonal stílusát adja meg. Értékei a következők lehetnek:
  • psSolid: folyamatos vonal.
  • psDash: szaggatott vonal.
  • psDot: pontozott vonal.
  • psDashDot: pontvonal.
  • psDashDotDot: dupla pontvonal (két pont és egy rövid szakasz ismétlődik)
  • psClear: nincs vonal. Ezt akkor használhatjuk, ha egy objektumnak (pl. Ellipse) nem szeretnénk körvonalat rajzolni.
  • psInsideFrame: ugyanaz, mint a psSolid, de ha szükséges, akkor az 1 pixelnél vastagabb vonalak színét képes több színből összeállítani (kisebb színfelbontás esetén).
A Mode property a vonal rajzolásának módját adja meg, vagyis a pixelek közötti logikai műveletet. Ezek közül a legfontosabbak:
  • pmBlack: a vonal (és az objektum) színe mindig fekete lesz.
  • pmWhite: a vonal (és az objektum) színe mindig fehér lesz.
  • pmNop: nem történik rajzolás.
  • pmNot: invertálja a Canvas pixeleinek színét.
  • pmCopy: a Color property értékét használja rajzoláshoz.
  • pmNotCopy: invertálja a színt.
  • pmMerge: A Canvas színének és a Color property szín kombinációja.
  • pmXor: XOR művelet a Canvas háttérszíne, és a Color szín között.
  • pmNotXor: az előző művelet eredményének inverze.

A TBrush osztály az objektumok kifestésének módját határozza meg. A Color property a kifestés színét, a Style pedig a mintázatát adja meg. A Style property értékei a következők lehetnek:
  • bsSolid: nincs minta, folyamatos kitöltés a Color property-ben megadott színnel.
  • bsClear: nincs kitöltés. Akkor használjuk, ha például a rajz objektumnak csak a körvonalát szeretnénk megjeleníteni, vagy a felirat hátterét átlátszóvá tenni.
  • bsHorizontal: vízszintes csíkozás.
  • bsVertical: függőleges csíkozás.
  • bsFDiagonal: 135 fokos ferde csíkozás
  • bsBDiagonal: 45 fokos ferde csíkozás.
  • bsCross: vízszintes és függőleges csíkozás kombinációja.
  • bsDiagCross: a bsFDiagonal és bsBDiagonal minták kombinációja.
A Bitmap property-ben megadható egy TBitmap objektum (kép), amit az alakzatok kitöltéséhez szeretnénk használni. Windows 9x és ME esetén csak egy maximum 8x8 pixeles képet használhatunk, Windows NT alatt a méret nincs korlátozva.

Egy tetszőleges alakzat kitöltéséhez a FloodFill eljárást használhatjuk. Az első két paraméter annak a pontnak a koordinátái, ahonnan a festést kezdjük. A harmadik paraméter egy szín, a negyedik paraméter pedig a kitöltés módja. A szín paraméter felhasználási módja ez utóbbi paramétertől függ. A kitöltés módja kétféle lehet:
  • fsSurface: a kitöltés addig folytatódik, amíg a paraméterként megadott színű összefüggő területet talál.
  • fsBorder: a paraméterként megadott szín annak az alakzatnak a körvonal színe, amit ki szeretnénk festeni. Ha az alakzatban lehetnek más színű pixelek is, azok is ki lesznek festve.
Az alábbi példák közül az első a Canvas (20,20) pozíciójában lévő pixeltől kezdve kifesti azt az alakzatot, aminek színe a megadott koordinátában lévő szín. A második példa egy olyan alakzatot fest ki, aminek a körvonala fekete színű. A megadott koordinátának az alakzaton belül kell lennie.
  Canvas.FloodFill(20, 20, Canvas.Pixels[20, 20], fsSurface);
  Canvas.FloodFill(40, 50, clBlack, fsBorder);




Cikksorozat

#IDKategóriaCikk címeSorozat
1166DelphiOsztály hierarchia lekérdezése1. rész
1180DelphiOsztály hierarchia lekérdezése2. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2001 évkönyv 551. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |