HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Ikon előállítása programból


Példaprogram letöltése

8297 bájt

Mellékelt példából megtudhatjuk, hogy miként hozhatunk létre ikont (TIcon) programból, valamint azt is, hogy futó alkalmazásunk ikonját miként cserélhetjük le menetközben.
A megvalósítás első lépéseként létre kell hoznunk két TBitmap-ot. E két kép segítségével tudunk majd előállítani egy ikont. A két kép maszkként fog működni. Az első - nevezzük AndMask-nak - egy fekete-fehér kép kell, hogy legyen. Létrehozás után ezt a Monochrome property igazra állításával érjük el. A kép méretét az ikon méretére kell megválasztanunk. Az ikon méretét a GetSystemMetrics függvénnyel kérdezhetjük le. Ezek után jöhet a rajz készítése. Amit fehér színnel rajzolunk, az a terület a végeredményben átlátszó lesz, amit pedig fekete színnel, az a terület a végeredményben látható lesz.
…
  AndMask:=TBitmap.Create;
  with AndMask do begin
    Monochrome:=true;
    Width:=IconWidth;
    Height:=IconHeight;
    with Canvas do begin
      Brush.Color:=clWhite;
      FillRect(Rect(0, 0, IconWidth, IconHeight));
      Brush.Style:=bsClear;
      with Font do begin
        Name:='Times';
        Size:=16;
        Style:=[fsBold];
      end;
      TextOut(2, 4, 'AS');
      TextOut(4, 6, 'AS');
    end;
  end;
…
Nézzük most a második képet. Ezt nevezzük XorMask-nak. E kép méretének szintén a készítendő ikon méretével kell egyeznie. Itt a háttér színt feketére kell hogy válasszuk, különben az előző képnél leírt átlátszóság-láthatóság feltétele nem teljesül. Amit pedig más színnel rajzolunk, az lesz maga az ikon képe. Megfigyelhető, hogy mind a két kép esetén ugyanazt a rajzot kell megjelenítenünk, egyedül csak a színek mások.
…
  XorMask:=TBitmap.Create;
  with XorMask do begin
    Width:=IconWidth;
    Height:=IconHeight;
    with Canvas do begin
      Brush.Color:=clBlack;
      FillRect(Rect(0, 0, IconWidth, IconHeight));
      Brush.Style:=bsClear;
      with Font do begin
        Name:='Times';
        Size:=16;
        Style:=[fsBold];
        Color:=clBlue;
      end;
      TextOut(4, 6, 'AS');
      Font.Color:=clAqua;
      TextOut(2, 4, 'AS');
    end;
  end;
…
Ha a két kép rendelkezésre áll, akkor a CreateIconIndirect függvény hívásával létrehozhatjuk a kívánt ikont. Paraméterként egy TIconInfo struktúrát vár. Ezen belül kell megadnunk a két képünknek az azonosítóját (Handle).
…
  IconInfo.fIcon:=true;
  IconInfo.xHotspot:=0;
  IconInfo.yHotspot:=0;
  IconInfo.hbmMask:=AndMask.Handle;
  IconInfo.hbmColor:=XorMask.Handle;
…
Az ikon létrehozása ezek után már egyszerű.
…
  Icon:=TIcon.Create;
  Icon.Handle:=CreateIconIndirect(IconInfo);
...
Ha már adott az ikonunk egy TIcon típusú osztályban, akkor bármit megtehetünk vele. Akár ki is rajzolhatjuk a képernyőre, akár ICO állományba is menthetjük, vagy a programunkhoz tartozó ikont is lecserélhetjük. Ez utóbbihoz csak annyit kell tenni, hogy az Application változó Icon property-ének értékül adjuk az újonnan létrehozott ikont, majd az InvalidateRect függvénnyel újrarajzoltatjuk annak területét.
…
  Application.Icon:=Icon;
  InvalidateRect(Application.Handle, nil, true);
…


Cikksorozat



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