HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

TLabel megjelenítése egy adott szögben


Példaprogram letöltése

5444 bájt

Mellékelt példában készítünk egy olyan TLabel komponenst, melynek van egy olyan property-e, aminek segítségével 0-360 fokos szögben elfordítható a felirat.
Egyetlen problémát a komponens méretének meghatározása jelenti, mivel ez minden szögben más és más, de némi osztás, szorzás, na meg szinusz, koszinusz után megoldható ez a gond is.

A mellékelt példaprogram megnyitása előtt az AngleLabel.pas-ban lévő komponenst telepítenie kell a Delphi alá.
A komponenst a TCustomLabel osztályból származtatjuk. Egyetlen új Angle névre hallgató property-t hozunk létre. Itt lehet megadni azt a szöget fokban, mellyel szeretnénk elforgatni a komponens szövegét.
A kirajzolása Paint eljárásban történik.
Itt a GetTextExtentPoint32 függvénnyel meghatározzuk azt a befoglaló téglalap méretét, melyben elfér az adott felirat.
Ezek után ki kell számítanunk, hogy az adott szög mellett mekkorára kell nyújtanunk a komponens méretét ahhoz, hogy az elforgatott szöveg teljesen beleférjen.
Itt négyfelé ágazik programunk attól függően, hogy a 360 fok melyik negyedébe esik az aktuális szög, mindig másképp kell számítani a méretet.
A betűtípus elforgatásának trükkje abból áll, hogy létre kell hoznunk egy új font-ot. Ezt úgy tesszük, hogy a GetObject-el lekérdezzük az aktuális adatait egy TLogFont struktúrába, majd ezen módosítunk. Az lfEscapement mezőben adható meg a font szöge tized fokokban.
Az új betűtípus létrehozását a CreateFontIndirect végzi el. Utána már csak a kirajzolás és végül a létrehozott új font törlése marad.

Cikksorozat

#IDKategóriaCikk címeSorozat
1488DelphiMS SQL tárolt eljárások1. rész
1499DelphiMS SQL tárolt eljárások2. rész
1507DelphiMS SQL tárolt eljárások3. rész
1519DelphiMS SQL tárolt eljárások4. rész
1526DelphiMS SQL tárolt eljárások5. rész
1537DelphiMS SQL tárolt eljárások6. rész
1546DelphiMS SQL tárolt eljárások7. rész
1553DelphiMS SQL tárolt eljárások8. rész
1564DelphiMS SQL tárolt eljárások9. rész
1573DelphiMS SQL tárolt eljárások10. rész
1582DelphiMS SQL tárolt eljárások11. rész
1591DelphiMS SQL tárolt eljárások12. rész
1600DelphiMS SQL tárolt eljárások13. rész
1609DelphiMS SQL tárolt eljárások14. rész
1617DelphiMS SQL tárolt eljárások15. rész
1626DelphiMS SQL tárolt eljárások16. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 509. 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 |