A bitképektől az ikonokig, a kurzoroktól a karakterlánc-táblázatokig minden Windows program erőforrásokat használ. Erőforrások a program azon elemei, amelyek támogatják a programot, de nem futtatható kódok. Ebben a cikkben bemutatunk néhány példát a bitképek, ikonok és az erőforrások kurzorának használatáról.
Az erőforrások helye
Az erőforrások elhelyezése az .exe fájlban két fő előnyök:
- Az erőforrásokhoz gyorsabban lehet hozzáférni, mivel kevesebb időbe telik az erőforrás megtalálása a futtatható fájlban, mint a lemezfájlból való betöltéshez.
- A programfájl és az erőforrások egyetlen egységben (.exe fájl) helyezhetők el, anélkül, hogy sok támogató fájlra lenne szükség.
A képszerkesztő
Először is létre kell hoznunk egy erőforrás fájlt. Az erőforrás fájlok alapértelmezett kiterjesztése:.RES. Az erőforrásfájlok a Delphi Image Editor segítségével hozhatók létre.
Bármelyik megnevezheti az erőforrásfájlt, ha az kiterjesztése ".RES", és a kiterjesztés nélküli fájlnév nem ugyanaz, mint bármely egység vagy projekt fájlnév. Ez fontos, mert alapértelmezés szerint mindegyik
Delphi projekt Az alkalmazásba forduló erőforrásfájl azonos nevű, mint a projektfájl, de a .RES kiterjesztéssel rendelkezik. A legjobb, ha a fájlt ugyanabba a könyvtárba menti, mint a projekt fájlt.Források bevonása az alkalmazásokba
A saját erőforrásfájlunk eléréséhez meg kell mondanunk a Delphinek, hogy kösse össze az erőforrásfájlt az alkalmazásunkkal. Ez úgy történik, hogy egy fordító irányelvet ad hozzá a forráskódhoz. Ennek az irányelvnek azonnal meg kell felelnie az irányelv formájának, az alábbiak szerint:
{$ R * .DFM}
{$ R DPABOUT.RES}
Ne véletlenül törölje a (z) {$ R * .DFM} részt, mivel ez a kódsor azt mondja Delphinek, hogy linkeljen az űrlap vizuális részében. Amikor a sebességgombok, a Képkomponensek vagy a Gombkomponensek bitképeit választja, a Delphi tartalmazza az űrlap erőforrásának részeként kiválasztott bitképfájlt. A Delphi elkülöníti a felhasználói felület elemeit a .DFM fájlban.
Az erőforrás tényleges használatához el kell készítenie néhányat Windows API felhívja. A RES fájlokban tárolt bittérképek, kurzorok és ikonok az API funkciók segítségével állíthatók le LoadBitmap, LoadCursor, és LoadIcon illetőleg.
Képek az erőforrásokban
Az első példa bemutatja, hogyan tölthető be erőforrásként tárolt bitkép és hogyan jeleníthető meg egy TImage összetevő.
eljárás TfrMain.btnCanvasPic (Feladó: TObject);
var bBitmap: TBitmap;
kezdődik
bBitmap: = TBitmap. létrehozása;
próbáld ki
bBitmap. Fogantyú: = LoadBitmap (hInstance, 'ATHENA');
Image1.Width: = bBitmap. Szélesség;
Image1.Height: = bBitmap. Magasság;
Image1.Canvas. Döntetlen (0,0, bBitmap);
végül
bBitmap. Ingyenes;
vég;
vég;
Megjegyzés: Ha a betöltendő bittérkép nincs az erőforrásfájlban, akkor a program továbbra is fut, csak nem jeleníti meg a bittérképet. Ezt a helyzetet el lehet kerülni annak tesztelésével, hogy megnézze-e bBitmap. Fogantyú nulla egy hívás után LoadBitmap () és megteszi a megfelelő lépéseket. Az próbáld / végül az előző kód része nem oldja meg ezt a problémát, csak itt kell meggyőződnie arról, hogy a bBitmap megsemmisül, és a kapcsolódó memória felszabadul.
Egy másik módszer arra, hogy az erőforrások bitképeit megjelenítsük:
eljárás TfrMain.btnLoadPicClick (Feladó: TObject);
kezdődik
Image1.Picture. Bitmap.
LoadFromResourceName (hInstance, 'EARTH');
vég;
Kurzorok az erőforrásokban
Képernyő. Kurzorok [] egy sor kurzorok által szállított Delphi. Erőforrásfájlok használatával hozzáadhatunk egyéni kurzorokat a Kurzorok tulajdonsághoz. Ha nem szeretnénk kicserélni az alapértelmezett értékeket, akkor a legjobb stratégia az 1-től kezdődő kurzorszámok használata.
eljárás TfrMain.btnUseCursorClick (Feladó: TObject);
const NewCursor = 1;
kezdődik
Képernyő. Kurzorok [NewCursor]: =
LoadCursor (hInstance, 'CURHAND');
Image1.Cursor: = NewCursor;
vég;
Ikonok az erőforrásokban
Ha Delphit nézzük Projekt-Options-alkalmazás beállításokat, azt találhatjuk, hogy a Delphi megadja az alapértelmezett ikont egy projekthez. Ez az ikon jelzi az alkalmazást a Windows Intézőben, és amikor az alkalmazás minimalizálva van. Ezt könnyen megváltoztathatjuk a 'Betöltés ikon' gombra kattintva.
Ha például azt szeretnénk, hogy animáljuk a program ikont, amikor a program minimalizálva van, akkor a következő kód fogja elvégezni a munkát.
Az animációhoz szükségünk van egy TTimer összetevő egy űrlapon. A kód két ikont tölt be az erőforrásfájlból egy tömbbe Ticon tárgyak; ezt a tömböt a fő forma nyilvános részében kell deklarálni. Szükségünk lesz rá NrIco, ez egy egész típusú változó, a nyilvános rész. Az NrIco a következő ikon megjelenítésére szolgál.
nyilvános
nrIco: egész szám;
MinIcon: a TIcon [0..1] tömbje;
...
eljárás TfrMain. FormCreate (Feladó: TObject);
kezdődik
MinIcon [0]: = Ticon. létrehozása;
MinIcon [1]: = Ticon. létrehozása;
MinIcon [0]. Kezelés: = LoadIcon (hInstance, 'ICOOK');
MinIcon [1]. Kezelés: = LoadIcon (hInstance, 'ICOFOLD');
NrIco: = 0;
Timer1.Interval: = 200;
vég;
...
eljárás TfrMain. Timer1Timer (Feladó: TObject);
beginif IsIconic (alkalmazás. Fogantyú) azutánkezdődik
NrIco: = (NrIco + 1) mod 2;
Alkalmazás. Ikon: = MinIcon [NrIco];
vég;
vég;
...
eljárás TfrMain. FormDestroy (feladó: TObject);
kezdődik
MinIcon [0] .Free;
MinIcon [1] .Free;
vég;
Ban,-ben Timer1.OnTimer eseménykezelő, IsMinimized funkció segítségével megnézhetjük, kell-e animálni a fő ikont, vagy sem. Ennek jobb módja az lenne, ha rögzítenék a maximalizálás / minimalizálás gombot, és nem cselekszenek.
Záró szavak
Bármit (és nem mindent) elhelyezhetünk az erőforrás fájlokban. Ez a cikk megmutatta, hogyan kell felhasználni az erőforrásokat a bittér, a kurzor vagy egy ikon használatához / megjelenítéséhez a Delphi alkalmazásban.
Megjegyzés: Amikor egy Delphi projektet mentünk a lemezre, a Delphi automatikusan létrehoz egy .RES fájlt, amelynek a neve ugyanaz, mint a projektnek (ha nincs más, akkor a projekt fő ikonja belül van). Bár megváltoztathatjuk ezt az erőforrás fájlt, ez nem ajánlott.