Ako spoločnosť Delphi používa súbory zdrojov

Od bitových máp po ikony, kurzory a tabuľky tabuliek používa každý program Windows zdroje. zdroje sú tie prvky programu, ktoré program podporujú, ale nie sú spustiteľným kódom. V tomto článku si ukážeme niekoľko príkladov použitia bitmáp, ikon a kurzorov zo zdrojov.

Umiestnenie zdrojov

Umiestnenie prostriedkov do súboru .exe má dve hlavné výhody:

  • K prostriedkom sa dá pristupovať rýchlejšie, pretože nájdenie prostriedku v spustiteľnom súbore trvá kratšie, ako je jeho načítanie z diskového súboru.
  • Programový súbor a prostriedky môžu byť obsiahnuté v jednej jednotke (súbor .exe) bez potreby mnohých podporných súborov.

Editor obrázkov

Najprv musíme vytvoriť zdrojový súbor. Predvolená prípona pre súbory zdrojov je.RES. Súbory zdrojov je možné vytvoriť pomocou editora obrázkov spoločnosti Delphi.

Súbor zdrojov môžete pomenovať podľa vlastného výberu, pokiaľ má príponu „.RES“ a názov súboru bez prípony nie je rovnaký ako názov súboru akejkoľvek jednotky alebo projektu. Je to dôležité, pretože v predvolenom nastavení je každý

instagram viewer
Projekt Delphi ktorý kompiluje do aplikácie, má zdrojový súbor s rovnakým názvom ako súbor projektu, ale s príponou „.RES“. Najlepšie je uložiť súbor do rovnakého adresára ako súbor projektu.

Vrátane zdrojov v aplikáciách

Aby sme mali prístup k nášmu vlastnému zdrojovému súboru, musíme povedať spoločnosti Delphi, aby prepojila náš zdrojový súbor s našou aplikáciou. To sa dosiahne pridaním smernice kompilátora do zdrojového kódu. Táto smernica sa musí okamžite riadiť touto smernicou:

{$ R * .DFM} 
{$ R DPABOUT.RES}

Nevymažujte náhodne časť {$ R * .DFM}, pretože toto je riadok kódu, ktorý hovorí spoločnosti Delphi, aby prepojila vizuálnu časť formulára. Keď vyberiete bitmapy pre tlačidlá rýchlosti, komponenty obrázka alebo komponenty tlačidiel, Delphi obsahuje bitmapový súbor, ktorý ste vybrali ako súčasť prostriedku formulára. Delphi izoluje prvky používateľského rozhrania do súboru .DFM.

Ak chcete skutočne použiť zdroj, musíte urobiť pár Windows API hovory. Bitmapy, kurzory a ikony uložené v súboroch RES je možné získať pomocou funkcií API LoadBitmap, LoadCursor, a LoadIcon resp.

Obrázky v zdrojoch

Prvý príklad ukazuje, ako načítať bitmapu uloženú ako prostriedok a zobraziť ju v a TImage zložkou.

procedúra TfrMain.btnCanvasPic (Sender: TObject);
var bBitmap: TBitmap;
začať
bBitmap: = TBitmap. vytvorenie;
vyskúšať
bBitmap. Handle: = LoadBitmap (hInstance, 'ATHENA');
Image1.Width: = bBitmap. šírky;
Image1.Height: = bBitmap. výška;
Image1.Canvas. Kreslenie (0,0, bBitmap);
konečne
bBitmap. Zadarmo;
koniec;
koniec;

Poznámka: Ak bitová mapa, ktorá sa má načítať, nie je v súbore prostriedkov, program sa bude stále spúšťať, bitová mapa sa jednoducho nezobrazí. Tejto situácii sa dá predísť testovaním, aby sa zistilo, či bBitmap. rukoväť je po volaní na nulu LoadBitmap () a podniknutie vhodných krokov. pokúsiť / finally časť v predchádzajúcom kóde tento problém nerieši, je tu len preto, aby sa ubezpečil, že bBitmap je zničený a jeho pridružená pamäť je uvoľnená.

Ďalší spôsob, ako môžeme použiť na zobrazenie bitmapy zo zdroja, je nasledujúci:

procedúra TfrMain.btnLoadPicClick (Sender: TObject);
začať
Image1.Picture. Bitmap.
LoadFromResourceName (hInstance, 'EARTH');
koniec;

Kurzory v oblasti zdrojov

Obrazovka. Kurzory [] je rad kurzorov dodaných spoločnosťou Delphi. Použitím súborov zdrojov môžeme do vlastnosti Kurzory pridať vlastné kurzory. Pokiaľ nechceme nahradiť ktorékoľvek z predvolených nastavení, najlepšou stratégiou je použitie čísel kurzorov začínajúcich od 1.

procedúra TfrMain.btnUseCursorClick (Sender: TObject);
const NewCursor = 1;
začať
Obrazovka. Kurzory [NewCursor]: =
LoadCursor (hInstance, 'CURHAND');
Image1.Cursor: = NewCursor;
koniec;

Ikony v časti Zdroje

Ak sa pozrieme na Delphiho Projekt-Možnosti-prihláška nastavenia, môžeme zistiť, že Delphi dodáva predvolenú ikonu pre projekt. Táto ikona predstavuje aplikáciu v Prieskumníkovi systému Windows a pri minimalizácii aplikácie. Môžeme to ľahko zmeniť kliknutím na tlačidlo „Načítať ikonu“.

Ak chceme napríklad animovať ikonu programu, keď je program minimalizovaný, úlohu vykoná nasledujúci kód.

Na animáciu potrebujeme a TTimer komponent vo formulári. Kód načíta dve ikony zo súboru prostriedkov do súboru Ticona objektov; toto pole sa musí uviesť vo verejnej časti hlavnej formy. Budeme tiež potrebovať NrIco, to je celé číslo premenlivý, vyhlásené v verejnosť part. NrIco sa používa na sledovanie nasledujúcej ikony, ktorá sa má zobraziť.

verejnosť
nrIco: Celé číslo;
Minikón: pole [0..1] TIcon;
...
procedúra TfrMain. FormCreate (odosielateľ: TObject);
začať
MinIcon [0]: = Ticona. vytvorenie;
MinIcon [1]: = Ticona. vytvorenie;
Minikón [0] .Handle: = LoadIcon (hInstance, 'ICOOK');
Minikón [1] .Handle: = LoadIcon (hInstance, 'ICOFOLD');
NrIco: = 0;
Timer1.Interval: = 200;
koniec;
...
procedúra TfrMain. Timer1Timer (Sender: TObject);
beginif IsIconic (Aplikácia. handle) potomzačať
NrIco: = (NrIco + 1) mod 2;
Aplikácie. Symbol: = MinIcon [NrIco];
koniec;
koniec;
...
procedúra TfrMain. FormDestroy (odosielateľ: TObject);
začať
MinIcon [0] .Free;
MinIcon [1] .Free;
koniec;

V Timer1.OnTimer obsluha udalosti, IsMinimized Funkcia slúži na zistenie, či musíme animovať našu hlavnú ikonu alebo nie. Lepším spôsobom, ako to dosiahnuť, by bolo zachytiť tlačidlá maximalizácie / minimalizácie a potom konať.

Záverečné slová

Do zdrojových súborov môžeme umiestniť čokoľvek (dobre, nie všetko). Tento článok vám ukázal, ako používať zdroje na použitie / zobrazenie bitmapy, kurzora alebo ikony v aplikácii Delphi.

Poznámka: Keď uložíme projekt Delphi na disk, spoločnosť Delphi automaticky vytvorí jeden súbor .RES, ktorý má rovnaký názov ako projekt (ak nič iné, hlavná ikona projektu je vnútri). Aj keď môžeme tento súbor zdrojov zmeniť, neodporúčame to.

instagram story viewer