HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Téglalapok kezelése


Canvas objektum 2. rész

Példaprogram letöltése

5952 bájt

A Windows grafikával foglalkozó cikksorozat második részében a téglalap alakú objektumok rajzolásának lehetőségeivel ismerkedünk meg. Ezekből van néhány a TCanvas osztályon belül, mindegyiket más és más feladatokra használhatjuk.
Az első eljárás, amivel téglalap alakzatokat rajzolhatunk a FillRect. A FillRect egy adott színű téglalapot rajzol a Brush property-ben megadott tulajdonságok figyelembevételével. A téglalapnak nincs kerete, tehát a Pen property-t nem használja. Jól használható olyan esetekben, amikor egy területet törölni kell egy adott színnel vagy mintával.
Az eljárás paraméterként egy TRect típusú értéket vár. A TRect típusnak négy mezője van. A Left a balszélső, a Right a jobbszélső, a Top a felső szél, és a Bottom az alsó szél koordinátáit adja meg.
  Form1.Canvas.FillRect(Rect(20, 20, 100, 80));

A következő eljárás nagyon hasonlít az előzőhöz, csupán annyi a különbség, hogy itt már a Pen property is szerephez jut. A téglalap kerete a Pen property-ben megadott vonalvastagsággal, színnel, stílussal és móddal lesz megrajzolva, míg a téglalap területére a Brush property beállításai érvényesek.
  Image1.Canvas.Rectangle(Image1.ClientRect);
  Image1.Canvas.Rectangle(10, 10, Image1.Width-10, Image1.Height-10);
A koordinátákat kétféleképpen is megadhatjuk, TRect típussal, vagy közvetlenül a koordináták megadásával. A két koordináta pár a téglalap egymással szemközti sarkainak pozícióját adja meg.

Rajzolhatunk lekerekített sarkú téglalap alakzatokat is, ehhez a RoundRect eljárást kell használnunk. A Rectangle eljárástól csupán annyiban különbözik, hogy még két további paramétert is meg kell adni, melyek a lekerekítéshez használt ellipszisív vízszintes és függőleges sugarának méretét adják meg. A koordinátákat nem adhatjuk meg TRect típussal, csak közvetlenül, ahogy az alábbi példában is látszik.
  Canvas.RoundRect(ClientRect.Left, ClientRect.Top, ClientRect.Right, ClientRect.Bottom, 20, 30);

Az utolsó eljárás mindenben eltér az előzőektől. A DrawFocusRect eljárást, mint a neve is mutatja, a fókuszt jelző keret kirajzolásához használhatjuk. Éppen ezért általában vizuális komponensek fejlesztésénél használatos.
Az eljárás egy pontozott vonalból álló keretet rajzol a megadott pozícióba. A kirajzolásnál nem veszi figyelembe sem a Pen, sem pedig a Bursh porperty-k tulajdonságait, kivéve a Brush property Color tulajdonságát. A kirajzolás XOR művelettel történik, tehát ha kétszer meghívjuk az eljárást ugyanazon paraméterekkel, akkor a kiinduló képhez jutunk, vagyis olyan, mintha nem is rajzoltunk volna semmit sem. A szín az XOR művelet miatt nem a Brush.Color property-ben megadott szín lesz az XOR művelet miatt. Ha például fehér háttérre rajzolunk piros színnel, akkor türkizt kapunk. (clWhite=$FFFFFF (fehér), clRed=$0000FF (piros), clAqua=$FFFF00 (a fehér és a piros értékeken végzett XOR művelet eredménye)). A koordinátákat TRect típusban kell megadni!
A DrawFocusrect eljárás ellentétben az előzőekkel, kényes a koordináták megadásának sorrendjére. Először a bal felső sarok koordinátáját kell megadni, utána pedig a jobb alsóét.
  Canvas.DrawFocusRect(Rect(5, 5, Width-5, Height-5));
A Pen és Brush property-kre részletesebben még visszatérünk a cikksorozatban.



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 485. 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 |