Kuinka Delphi käyttää resurssitiedostoja

Jokainen Windows-ohjelma käyttää resursseja bittikartoista kuvakkeisiin, osoittimiin ja merkkijonoihin. voimavarat ovat ohjelman elementtejä, jotka tukevat ohjelmaa, mutta eivät ole suoritettavia koodeja. Tässä artikkelissa käydään läpi joitain esimerkkejä resurssien bittikarttojen, kuvakkeiden ja osoittimien käytöstä.

Resurssien sijainti

Resurssien sijoittamisella .exe-tiedostoon on kaksi pääasiallista edut:

  • Resursseihin pääsee nopeammin, koska resurssien etsiminen suoritettavasta tiedostosta vie vähemmän aikaa kuin sen lataaminen levytiedostosta.
  • Ohjelmatiedosto ja resurssit voivat olla yhdessä yksikössä (.exe-tiedosto) ilman, että tarvitaan paljon tukitiedostoja.

Kuvaeditori

Ensinnäkin meidän on luotava resurssitiedosto. Resurssitiedostojen oletuslaajennus on.RES. Resurssitiedostot voidaan luoda Delphin Image Editorilla.

Voit nimetä resurssitiedoston haluamallasi tavalla, kunhan sen tunniste on ".RES" ja tiedostonimi ilman laajennusta ei ole sama kuin yksikön tai projektin tiedostonimi. Tämä on tärkeää, koska oletuksena jokainen

instagram viewer
Delphi-projekti sovellukseksi kääntyvällä on resurssitiedosto, jolla on sama nimi kuin projektitiedostolla, mutta jonka tunniste on .RES. Parasta on tallentaa tiedosto samaan hakemistoon kuin projektitiedosto.

Resurssien sisällyttäminen sovelluksiin

Jotta pääsemme omaan resurssitiedostoomme, meidän on sanottava Delphille linkittävän resurssitiedostomme sovellukseemme. Tämä saavutetaan lisäämällä kääntäjädirektiivi lähdekoodiin. Tämän direktiivin on välittömästi noudatettava muotodirektiiviä, kuten seuraava:

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

Älä vahingossa poista {$ R * .DFM} -osaa, koska tämä on koodirivi, joka käskee Delphin linkittämään lomakkeen visuaaliseen osaan. Kun valitset nopeuspainikkeiden, kuvakomponenttien tai painikekomponenttien bittikartat, Delphi sisältää bittikarttatiedoston, jonka valitsit osana lomakkeen resursseja. Delphi eristää käyttöliittymäelementit .DFM-tiedostoksi.

Jotta resurssia tosiasiallisesti käytettäisiin, sinun on tehtävä muutama Windows-sovellusliittymä puhelut. RES-tiedostoihin tallennetut bittikartat, osoittimet ja kuvakkeet voidaan hakea API-toimintojen avulla LoadBitmap, LoadCursor, ja LoadIcon vastaavasti.

Kuvia resursseissa

Ensimmäinen esimerkki näyttää kuinka ladata resurssina tallennettu bittikartta ja näyttää se TImage komponentti.

menettely TfrMain.btnCanvasPic (Lähettäjä: TObject);
var bBitmap: TBitmap;
alkaa
bBitmap: = TBitmap. Luoda;
yrittää
bBitmap. Kahva: = LoadBitmap (hInstance, 'ATHENA');
Kuva1.leveys: = bBitmap. Leveys;
Image1.Height: = bBitmap. Korkeus;
Image1.Canvas. Piirrä (0,0, bBitmap);
vihdoin
bBitmap. Vapaa;
pää;
pää;

Huomaa: Jos ladattava bittikartta ei ole resurssitiedostossa, ohjelma toimii edelleen, se vain ei näytä bittikarttaa. Tämä tilanne voidaan välttää testaamalla, onko bBitmap. Käsitellä on nolla puhelun jälkeen LoadBitmap () ja ottamalla tarvittavat toimenpiteet. kokeile / vihdoin Edellisen koodin osa ei ratkaise tätä ongelmaa, juuri täällä on varmistettava, että bBitmap tuhotaan ja siihen liittyvä muisti vapautetaan.

Toinen tapa, jolla voimme näyttää bittikartan resurssista, on seuraava:

menettely TfrMain.btnLoadPicClick (Lähettäjä: TObject);
alkaa
Image1.Picture. Bittikartta.
LoadFromResourceName (hInstance, 'EARTH');
pää;

Resurssien kohdistimet

Näyttö. Kursoreita [] on ryhmä Delphin toimittamista kohdistimista. Resurssitiedostoja käyttämällä voimme lisätä mukautettuja kohdistimia Kohdistimet-ominaisuuteen. Ellemme halua korvata mitään oletusarvoista, paras strategia on käyttää kohdistinlukuja, jotka alkavat yhdestä.

menettely TfrMain.btnUseCursorClick (Lähettäjä: TObject);
const NewCursor = 1;
alkaa
Näyttö. Kohdistimet [NewCursor]: =
LoadCursor (hInstance, 'CURHAND');
Image1.Cursor: = NewCursor;
pää;

Resurssien kuvakkeet

Jos katsomme Delphin Hanke-asetukset-sovelluksessa asetukset, voimme havaita, että Delphi toimittaa oletuskuvaketta projektille. Tämä kuvake edustaa sovellusta Windowsin Resurssienhallinnassa ja kun sovellus on minimoitu. Voimme muuttaa tämän helposti napsauttamalla Lataa kuvake -painiketta.

Jos haluamme esimerkiksi animoida ohjelman kuvakkeen, kun ohjelma pienennetään, seuraava koodi suorittaa tehtävän.

Animaatiota varten tarvitsemme TTimer komponentti lomakkeessa. Koodi lataa kaksi kuvaketta resurssitiedostosta joukkoon ticon esineet; tämä ryhmä on ilmoitettava päämuodon julkisessa osassa. Tarvitsemme myös NrIco, se on kokonaisluku tyyppi muuttuja, ilmoitettu julkinen osa. NrIco käytetään seuraamaan seuraavaa näytettävää kuvaketta.

julkinen
nrIco: Kokonaisluku;
MinIcon: ryhmä [0..1] TIconia;
...
menettely TfrMain. FormCreate (Lähettäjä: TObject);
alkaa
Minicon [0]: = ticon. Luoda;
Minicon [1]: = ticon. Luoda;
MinIcon [0] .Käsittely: = LoadIcon (hInstance, 'ICOOK');
MinIcon [1] .Käsittely: = LoadIcon (hInstance, 'ICOFOLD');
NrIco: = 0;
Timer1.Interval: = 200;
pää;
...
menettely TfrMain. Timer1Timer (lähettäjä: TObject);
beginif IsIconic (Sovellus. Käsitellä) sittenalkaa
NrIco: = (NrIco + 1) mod 2;
Sovellus. Icon: = Minicon [NrIco];
pää;
pää;
...
menettely TfrMain. FormDestroy (Lähettäjä: TObject);
alkaa
Minicon [0] .Free;
Minicon [1] .Free;
pää;

vuonna Timer1.OnTimer tapahtumakäsittelijä, IsMinimized toimintoa käytetään näkemään, onko meidän animoitava pääkuvakkeemme vai ei. Parempi tapa saavuttaa tämä olisi siepata maksimointi / minimointi painikkeet ja kuin toimia.

Viimeiset sanat

Voimme sijoittaa mitä tahansa (hyvin, ei kaikkea) resurssitiedostoihin. Tämä artikkeli on osoittanut sinulle, kuinka resurssien käyttöä voi käyttää / näyttää bittikarttaa, kohdistinta tai kuvaketta Delphi-sovelluksessa.

Huomaa: Kun tallennamme Delphi-projektin levylle, Delphi luo automaattisesti yhden .RES-tiedoston, jolla on sama nimi kuin projektilla (ellei muuta ole, projektin pääkuvake on sisällä). Vaikka voimme muuttaa tätä resurssitiedostoa, se ei ole suositeltavaa.

instagram story viewer