
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.