|
|
|
|
Példaprogram letöltése
47439 bájt
|
Korábbi cikkeinkben már volt szó arról, hogy hogyan készíthetünk tetszőleges formájú, vagy akár lyukas Form-ot. Ezt a lehetőséget kihasználhatjuk vizuális komponenseknél is, hiszen előfordulhat olyan eset, hogy nem egy szabályos téglalap alakú komponensre, például gombra van szükségünk. Ebben annak járunk utána, hogy hogyan készíthetünk tetszőleges alakú komponenseket, amelyekkel egyszerűen felépíthetünk egy bonyolult elemekből álló felhasználói felületet is.
|
A mellékelt példaprogram megnyitása előtt a TransparentButton.pas-ban lévő komponenst telepítenie kell a Delphi alá.
Mivel minden vizuális komponens egyben ablak is, ezért ugyanazt a módszert használhatjuk ebben az esetben is, mint a Form-nál, vagyis a SetWindowRgn függvénnyel megadjuk azt a régiót (területet), ami az ablakból látszik, illetve nem látszik. Az „átlátszó” részek mögött a háttér fog látszani.
A készítendő komponens egy gomb lesz. A lenyomott, és felengedett állapotokhoz egy-egy bitképet adhatunk meg az ImageDown és ImageUp property-ken keresztül. A képeket úgy kell elkészíteni, hogy a bal-alsó pixel színe adja meg azt a színt, ami nem fog látszani, vagyis ahol a gomb átlátszó lesz. Ezekből a bitképekből kell előállítani a region-t, ehhez viszont létre kell hoznunk egy eljárást. Ez az eljárás lesz a CreateButtonRgn. Ebben létrehozunk egy téglalap alakú régiót (CreateRectRgn), majd a kép pixeleit soronként feldolgozva az átlátszó részeket „kivonjuk” ebből a CombineRgn függvény segítségével. Ha elkészült a régió, akkor a SetWindowRgn függvénnyel felhasználjuk azt a komponensnél.
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2001 évkönyv 519. 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!
|