HyperLink


Bejelentkezés
E-mail: 
Jelszó: 






Skip Navigation Links
 

Bevel komponens Caption tulajdonsággal


Példaprogram letöltése

4079 bájt

Készítünk egy olyan komponenst, melyben a Bevel komponens tulajdonságait kibővítjük egy Caption tulajdonsággal. Az itt megadott szöveg a Panel komponens Caption tulajdonságához hasonlóan, a komponens közepén fog elhelyezkedni. A megjelenő szöveg betűtípusát egy Font property-n keresztül állíthatjuk be.

A mellékelt példaprogram megnyitása előtt a BevelWithCaption.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A komponens a TBevel osztály összes tulajdonságával rendelkezik. Ezek a tulajdonságok kiegészülnek egy Caption és egy Font tulajdonsággal. A Caption mezőbe kell beírni azt a szöveget, amelyet meg szeretnénk jeleníteni. A megjelenő szöveg tulajdonságait a Font tulajdonságon keresztül módosíthatjuk.
Komponensünket a TBevel osztályból származtatjuk, hiszen ennek az osztálynak a tulajdonságait akarjuk bővíteni.
Szükség van egy Caption mezőre, amely String típusú és egy Font mezőre, amely TFont típusú. Mindkét tulajdonság értékének módosításakor meg kell hívnunk az Invalidate metódust, hogy a változások megjelenjenek.
A komponens képének megrajzolásához a Paint metódust kell felülírnunk.
A célunk az, hogy a Bevel közepén egy olyan feliratot hozzunk létre, amely háttere - a Bevel hátteréhez hasonlóan - megegyezik a komponens mögötti háttér színével. Az átlátszóság létrehozásához a TransparentBlt függvényt használjuk fel.
A TransparentBlt függvénnyel egy Canvas objektum tartalmát átmásolhatjuk egy másikba, úgy hogy egy megadott színt a komponens mögötti háttérszínnel cserélünk fel.
Létrehozunk egy TBitmap típusú segédváltozót, b néven. Ennek a Canvas tulajdonságára fogjuk kirajzolni a szöveget, amit majd átmásolunk. Ennek tartalma lesz a forrás kép.
Az alábbi algoritmussal meghatározhatjuk azt a szélességet és magasságot, amelyet a megjelenítendő szöveg, FFont betűtípussal elfoglal.
b.Canvas.Font:=FFont;
w:=b.Canvas.TextWidth(FCaption);
h:=b.Canvas.TextHeight(FCaption);
A Bitmap szélességét és magasságát beállítjuk a w és h értékének megfelelően, majd Canvas tulajdonságán keresztül ráírjuk az FCaption tartalmát.
b.Canvas.TextOut(0,0,FCaption);
Miután az ideiglenesen létrehozott Bitmap objektumra rárajzoltuk a feliratot, nincs más dolgunk, mint azt átmásolni komponensünk Canvas-ára.
TransparentBlt(Canvas.Handle,Width div 2-w div 2,Height div 2-h div 2,w,h,b.Canvas.Handle,0,0,w,h,Canvas.Brush.Color);
A TransparentBlt függvény paraméterei a következők, sorrendben: cél kép leírója, cél kép kezdő X koordinátája, cél kép kezdő Y koordinátája, cél kép szélessége, cél kép magassága, forrás kép leírója, forrás kép kezdő X koordinátája, a forrás kép kezdő Y koordinátája, a forrás kép szélessége, a forrás kép magassága, és végül az a szín, amelyet átlátszóvá szeretnénk tenni.

Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 12. 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-2010 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |