|
|
|
|
Példaprogram letöltése
28384 bájt
|
Ha egy olyan multimédiás alkalmazást szeretnénk készíteni, aminek felülete nagyban hasonlít egy WEB oldalhoz, akkor a Delphi-ben alapesetben található komponensekkel ezt nem nagyon tudjuk megoldani. Most egy olyan komponenst mutatunk be, amivel könnyedén készíthetünk olyan gombokat vagy kapcsolókat, melyek beleolvadhatnak a háttérbe, vagyis a felhasználói felület tetszés szerint kialakítható.
A mellékelt példaprogram megnyitása előtt a GfxButton.pas-ban lévő komponenst telepítenie kell a Delphi alá.
A komponenshez különböző képeket rendelhetünk, melyek bizonyos esemény bekövetkezésekor jelennek meg. Külön kép tartozik a gomb normál állapotához, a lenyomott állapothoz, a kikapcsolt állapothoz, valamint külön kép jelenhet meg akkor, amikor az egér a komponens felett található.
A komponens megjelenítését most is a Paint metódus végzi, amely automatikusan végrehajtódik amikor szükséges.
Ha az Enabled property igaz, akkor megvizsgáljuk, hogy az FDown változó értéke igaz-e. Ez akkor igaz, ha a gomb lenyomott állapotban van. Ilyenkor a BitmapDown property-ben megadott képet jelenítjük meg. Ha ez nincs megadva, akkor a Bitmap property-ben megadott képet jelenítjük meg.
if Enabled then begin
if FDown or FMouseDown then begin
if FBitmapDown.Empty then begin
DrawBitmap(FBitmap);
end else begin
DrawBitmap(FBitmapDown);
end;
Ha az FDown változó értéke hamis, akkor megvizsgáljuk, hogy az FMouseOver változó értéke igaz-e. Ez akkor igaz, ha az egér a komponens felett van. Ebben az esetben a BitmapOver property-ben beállított képet jelenítjük meg, illetve ha az nincs megadva, akkor a Bitmap property-ben beállított képet.
end else begin
if FMouseOver then begin
if FBitmapOver.Empty then begin
DrawBitmap(FBitmap)
end else begin
DrawBitmap(FBitmapOver);
end;
Ha az FMouseOver változó értéke hamis, akkor a Bitmap property-ben megadott képet jelenítjük meg.
end else begin
DrawBitmap(FBitmap);
end;
end;
Ha az Enabled property értéke hamis, akkor a BitmapDisabled property-ben beállított képet fogjuk megjeleníteni, de ha ez nincs megadva, akkor itt is a Bitmap property-ben beállított kép jelenik meg.
end else begin
if FBitmapDisabled.Empty then begin
DrawBitmap(FBitmap);
end else begin
DrawBitmap(FBitmapDisabled);
end;
end;
end;
A fenti forrást megnézve látható, hogy a képek megjelenítését a DrawBitmap eljárás végzi. Ez a komponens egy belső eljárása, ami a következőképpen néz ki:
Ha a paraméterként megkapott Bitmap üres, vagyis nincs kép megadva, akkor csak egy szaggatott vonallal megrajzolt keretet rajzolunk a komponens köré. Ezt is csak akkor, amikor szerkesztési időben vagyunk, tehát futtatás közben ez nem látszik. Ha a fenti kódot jól megnézzük, akkor látható, hogy szerkesztési időben is csak akkor fordulhat ez elő, ha a Bitmap property-ben nem adtunk meg képet.
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2001 évkönyv 390. 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!
|