Kaip „Delphi“ naudoja išteklių failus

Nuo „bitų“ žemėlapių iki piktogramų iki žymeklių iki stulpelių lentelių kiekviena „Windows“ programa naudoja išteklius. Šaltiniai yra tie programos elementai, kurie palaiko programą, bet nėra vykdomasis kodas. Šiame straipsnyje apžvelgsime keletą bitų schemų, piktogramų ir žymeklių naudojimo iš išteklių pavyzdžių.

Šaltinių vieta

Išteklių talpinimas .exe faile turi dvi pagrindines pranašumai:

  • Ištekliai gali būti pasiekiami greičiau, nes norint surasti išteklių vykdomajame faile reikia mažiau laiko, nei norint juos įkelti iš disko failo.
  • Programos failą ir išteklius galima sudėti į vieną rinkinį (.exe failą) nereikia daug palaikančių failų.

Vaizdo rengyklė

Visų pirma, mes turime sukurti išteklių failą. Numatytasis išteklių failų plėtinys yra.RES. Šaltinio failus galima sukurti naudojant „Delphi“ vaizdų rengyklę.

Šaltinio failą galite pavadinti bet kuo, jei jo plėtinys yra „.RES“, o failo vardas be plėtinio nėra tas pats kaip bet kurio vieneto ar projekto failo vardas. Tai svarbu, nes pagal nutylėjimą kiekvienas

instagram viewer
„Delphi“ projektas kuri kompiliuota į programą, turi išteklių failą tuo pačiu pavadinimu kaip projekto failas, bet su plėtiniu „.RES“. Geriausia failą išsaugoti tame pačiame aplanke kaip ir projekto failą.

Išteklių įtraukimas į programas

Norėdami pasiekti savo išteklių failą, turime nurodyti „Delphi“ susieti išteklių failą su mūsų programa. Tai pasiekiama prie šaltinio kodo pridedant kompiliatoriaus direktyvą. Ši direktyva turi nedelsdama atitikti tokios formos direktyvą:

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

Neatsitiktinai neištrinkite {$ R * .DFM} dalies, nes tai yra kodo eilutė, kuri liepia Delphi susieti formos vizualiąją dalį. Kai pasirenkate greičio mygtukų, vaizdo komponentų ar mygtukų komponentų žemėlapius, „Delphi“ įtraukia bitmap žemėlapio failą, kurį pasirinkote kaip formos šaltinį. „Delphi“ išskiria jūsų vartotojo sąsajos elementus į .DFM failą.

Norėdami iš tikrųjų naudoti išteklius, turite padaryti keletą „Windows“ API skambučiai. RES failus išsaugotus bitkoinus, žymeklius ir piktogramas galima atkurti naudojant API funkcijas „LoadBitmap“, „LoadCursor“, ir „LoadIcon“ atitinkamai.

Paveikslėliai šaltiniuose

Pirmasis pavyzdys parodo, kaip įkelti bitmap, saugomą kaip išteklius, ir parodyti jį TImage komponentas.

procedūra „TfrMain.btnCanvasPic“ (Siuntėjas: „TObject“);
var „bBitmap“: TBitmap;
prasideda
bBitmap: = TBitmap. Kurti;
bandyti
„bBitmap“. Rankena: = „LoadBitmap“ („hInstance“, „ATHENA“);
Image1.Width: = „bBitmap“. Plotis;
Image1.Height: = „bBitmap“. Aukštis;
Image1.Canvas. Lygiosios (0,0, bBitmap);
pagaliau
„bBitmap“. Laisvas;
galas;
galas;

PASTABA: Jei kraunamo bitkoino nėra šaltinio faile, programa vis tiek veiks, ji tiesiog neparodys bitmap. Šios situacijos galima išvengti patikrinus, ar „bBitmap“. Rankena po skambučio į „LoadBitmap“ () ir imdamiesi atitinkamų veiksmų. pabandyk / pagaliau Ankstesnio kodo dalis neišsprendžia šios problemos, tiesiog įsitikinkite, kad „bBitmap“ yra sunaikintas ir atlaisvinta susijusi atmintinė.

Kitas būdas, kurį galime naudoti iš šaltinio pateikdami bitkartą, yra šie:

procedūra TfrMain.btnLoadPicClick (Siuntėjas: TObject);
prasideda
Paveikslėlis1. „Bitmap“.
„LoadFromResourceName“ („hInstance“, „EARTH“);
galas;

Žymekliai šaltiniuose

Ekranas. Žymekliai [] yra masyvas žymeklių, kuriuos pateikė „Delphi“. Naudodamiesi išteklių failais, mes galime pridėti pasirinktinius žymeklius nuosavybėje Cursors. Jei nenorime pakeisti nė vieno numatytojo nustatymo, geriausia strategija yra naudoti žymeklio numerius, prasidedančius nuo 1.

procedūra TfrMain.btnUseCursorClick (Siuntėjas: TObject);
const „NewCursor“ = 1;
prasideda
Ekranas. Žymekliai [NewCursor]: =
„LoadCursor“ („hInstance“, „CURHAND“);
„Image1.Cursor“: = „NewCursor“;
galas;

Šaltiniai

Jei pažvelgtume į Delfus Projektas-parinktys-paraiška parametrus, galime pastebėti, kad „Delphi“ pateikia numatytąją projekto piktogramą. Ši piktograma žymi programą „Windows Explorer“ ir tada, kai programa yra sumažinta. Tai lengvai galime pakeisti spustelėję mygtuką „Įkelti piktogramą“.

Jei norime, pavyzdžiui, pagyvinti programos piktogramą, kai programa sumažinama iki minimumo, tada šis kodas atliks darbą.

Norėdami sukurti animaciją, mums reikia TTimer formos komponentas. Kodas įkelia dvi piktogramas iš išteklių failo į masyvą TIcon daiktai; šį masyvą reikia deklaruoti pagrindinės formos viešoje dalyje. Mums taip pat reikės NrIco, tai yra sveikasis skaičius kintamasis, deklaruota viešai dalis. NrIco naudojamas sekant sekančią rodomą piktogramą.

viešai
nrIco: Sveikasis skaičius;
MinIcon: TIcon masyvas [0..1];
...
procedūra TfrMain. „FormCreate“ (siuntėjas: „TObject“);
prasideda
MinIcon [0]: = TIcon. Kurti;
MinIcon [1]: = TIcon. Kurti;
„MinIcon“ [0]. Rankena: = „LoadIcon“ („hInstance“, „ICOOK“);
„MinIcon“ [1]. Rankena: = „LoadIcon“ („hInstance“, „ICOFOLD“);
NrIco: = 0;
Laikmatis1.Intervalis: = 200;
galas;
...
procedūra TfrMain. „Timer1Timer“ (siuntėjas: „TObject“);
pradžia „IsIconic“ (taikymas. Rankena) tadaprasideda
NrIco: = (NrIco + 1) mod 2;
Taikymas. Ikona: = „MinIcon“ [NrIco];
galas;
galas;
...
procedūra TfrMain. „FormDestroy“ (siuntėjas: „TObject“);
prasideda
„MinIcon“ [0] .Nemokama;
„MinIcon“ [1] .Nemokama;
galas;

Viduje Laikmatis1.OnTimer renginių vedėjas, IsMinimized funkcija naudojama norint pamatyti, ar mums reikia pagyvinti pagrindinę piktogramą, ar ne. Geresnis būdas tai padaryti būtų užfiksuoti mygtukus padidinti / sumažinti ir neveikti.

Baigiamieji žodžiai

Į resursų failus galime sudėti bet ką (na, ne viską). Šis straipsnis parodė, kaip naudoti išteklius norint naudoti / atvaizduoti bitkartą, žymeklį ar piktogramą „Delphi“ programoje.

Pastaba: kai išsaugome „Delphi“ projektą diske, „Delphi“ automatiškai sukuria vieną .RES failą, kurio pavadinimas yra toks pat kaip projekto (jei nieko daugiau, pagrindinė projekto piktograma yra viduje). Nors mes galime pakeisti šį išteklių failą, tai nepatartina.