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