Kép vagy kurzor betöltése res fájlból

Képek és kurzorok betöltése a RES fájlokból

A képek és a kurzorok az erőforrás-fájlokban (RES) tárolhatók, és az alkalmazás EXE fájlához kapcsolódhatnak (csatolva). A RES fájlokat a Delphi Image Editor segédprogramok és a Borland Resource Workshop segítségével lehet létrehozni, a Delphi RAD csomagban. A RES fájlokban tárolt képek és kurzorok (az EXE vagy a DLL-ben történő csomagolás után) az LoadBitmap és a LoadCursor API függvényekkel bonthatók ki.







A LoadBitmap API funkció a következő:

Az első paraméternek tartalmaznia kell a RES fájlot, amelyből az erőforrást szeretné lekérni, a modulleíró (EXE vagy DLL). A Delphi tárolja a futó EXE fájl leíróját egy Hinstance nevű globális változóban. Az alábbi példában azt feltételezzük, hogy az a modul, amelyről képet akarunk feltölteni, az Ön alkalmazása. A modul azonban lehet egy másik EXE vagy DLL fájl. A következő példa betölti a BITMAP_1 nevű képet a RES fájlból, amely az alkalmazás EXE fájljához kapcsolódik:







A LoadBitmap API használatának egyik hátránya: a LoadBitmap még mindig API-hívás a Windows 3.0-hoz, és csak a DDB (Device Dependent Bitmaps) fájlként töltődik be. Ez problémát okozhat a színpalettával a DIB (Device Independent Bitmaps) betöltése során a RES fájlból. Az alábbi kód használható a RES fájlokból származó DIB-ek kivonására. Ez a kód betölti a képet megosztott erőforrásként, átadja a folyamnak, majd a Delphi felhívja a LoadFromStream-ot, amely automatikusan végrehajtja a palettát.

A LoadCursor API függvény a következő:

Ezután adja hozzá a következő két sort az eseménykezelőhöz az OnCreate eseményhez:

vagy megváltoztathatja a standard Delphi kurzorok egyikét, az alábbiak szerint (A kurzorok konstansjait a Cursors Property cikkében található online súgóban találja meg):

Megjegyzés: normál esetben törölni kell a kurzor erőforrásait a DeleteCursor segítségével, azonban a Delphi-ban ez nem szükséges, mivel a Delphi maga törli a kurzorokat a kurzorok tömbjéből.




Kapcsolódó cikkek