Od bitnih slik do ikon do kazalcev do nizov tabel vsak program Windows uporablja vire. Viri so tisti elementi programa, ki podpirajo program, vendar niso izvršljive kode. V tem članku bomo preučili nekaj primerov uporabe bitnih slik, ikon in kazalcev iz virov.
Lokacija virov
Postavljanje virov v datoteko .exe ima dve glavni prednosti:
- Do virov je mogoče hitreje dostopati, ker traja manj časa, da najdete vir v izvršljivi datoteki, kot pa ga naložite iz diskovne datoteke.
- Programska datoteka in viri so lahko vsebovani v eni sami enoti (datoteka .exe), ne da bi bilo potrebno veliko podpornih datotek.
Urejevalnik slik
Najprej moramo ustvariti datoteko z viri. Privzeta razširitev za datoteke z viri je.OVE. S pomočjo urejevalnika slik Delphi lahko ustvarite datoteke z viri.
Datoteko virov lahko poimenujete karkoli želite, če ima razširitev ".RES" in ime datoteke brez končnice ni isto kot katero koli ime datoteke ali projekta. To je pomembno, saj privzeto vsak Projekt Delphi, ki se sestavi v aplikacijo, ima datoteko virov z istim imenom kot projektno datoteko, vendar s pripono ".RES". Najbolje je, da datoteko shranite v isti imenik kot datoteko projekta.
Vključitev virov v aplikacije
Za dostop do lastne datoteke virov moramo povedati podjetju Delphi, da svojo datoteko virov poveže z našo aplikacijo. To dosežemo z dodajanjem direktive o prevajalniku v izvirno kodo. Ta direktiva mora takoj slediti obliki obrazca, kot je naslednja:
{$ R * .DFM}
{$ R DPABOUT.RES}
Ne naključno izbrišite {$ R * .DFM} dela, saj je to vrstica kode, ki pove Delphiju, da se poveže v vizualnem delu obrazca. Ko izberete bitne slike za gumbe za hitrost, komponente slike ali komponente gumba, Delphi vključuje datoteko bitne slike, ki ste jo izbrali kot del vira obrazca. Delphi izolira elemente uporabniškega vmesnika v datoteko .DFM.
Če želite dejansko uporabiti vir, jih morate narediti nekaj Windows API klici. Bitne slike, kazalce in ikone, shranjene v OVE datotekah, je mogoče pridobiti s funkcijami API-ja LoadBitmap, LoadCursor, in LoadIcon oz.
Slike v virih
Prvi primer prikazuje, kako naložiti bitno sliko, shranjeno kot vir, in jo prikazati v TImage sestavni del.
postopek TfrMain.btnCanvasPic (Pošiljatelj: TObject);
var bBitmap: TBitmap;
začeti
bBitmap: = TBitmap. Ustvari;
poskusi
bBitmap. Ročaj: = LoadBitmap (hInstance, 'ATHENA');
Image1.Width: = bBitmap. Premer;
Image1.Height: = bBitmap. Višina;
Slika1.Canvas. Risanje (0,0, bBitmap);
končno
bBitmap. Prost;
konec;
konec;
Opomba: Če bitne slike, ki jo je treba naložiti, ni v datoteki z viri, program se bo še vedno izvajal, a bitne slike ne bo prikazal. Tej situaciji se je mogoče izogniti s testiranjem in preveriti, ali je bBitmap. Ročaj je nič po pozivu na LoadBitmap () in sprejeti ustrezne ukrepe. The poskusi / končno Del prejšnje kode ne reši te težave, tukaj je samo, da se prepričate, da je bBitmap uničen in da se sprosti spomin.
Drug način, kako lahko uporabimo prikazovanje bitne slike iz vira, je naslednji:
postopek TfrMain.btnLoadPicClick (Pošiljatelj: TObject);
začeti
Slika1.Slika. Bitmap.
LoadFromResourceName (hInstance, 'EARTH');
konec;
Kazatelji v virih
Zaslon. Kazališča [] je matrika kazalcev, ki jih je dobavil Delphi. Z uporabo datotek virov lahko v lastnost Cursors dodamo kazalce po meri. Če ne želimo nadomestiti nobenega privzetega, je najboljša strategija uporaba številk kazalcev, ki se začnejo z 1.
postopek TfrMain.btnUseCursorClick (Pošiljatelj: TObject);
konst NewCursor = 1;
začeti
Zaslon. Kazališča [NewCursor]: =
LoadCursor (hInstance, 'CURHAND');
Image1.Cursor: = NewCursor;
konec;
Ikone v virih
Če pogledamo Delfove Možnosti projekta - aplikacija nastavitve, lahko ugotovimo, da Delphi dobavi privzeto ikono za projekt. Ta ikona predstavlja aplikacijo v programu Windows Explorer in ko je aplikacija zmanjšana. To lahko enostavno spremenimo s klikom na gumb 'Ikona nalaganja'.
Če želimo na primer animirati ikono programa, ko je program zmanjšan, potem bo to opravilo naslednje.
Za animacijo potrebujemo a TTimer komponenta na obrazcu. Koda naloži dve ikoni iz datoteke virov v matriko TIcon predmeti; ta niz je treba objaviti v javnem delu glavnega obrazca. Potrebovali bomo tudi NrIco, to je vrsta Integer spremenljivka, razglašen v javnosti del. The NrIco se uporablja za sledenje naslednje ikone za prikazovanje.
javnosti
nrIco: Integer;
MinIcon: matrika [0..1] TIcon-a;
...
postopek TfrMain. FormCreate (pošiljatelj: TObject);
začeti
MinIcon [0]: = TIcon. Ustvari;
MinIcon [1]: = TIcon. Ustvari;
MinIcon [0]. Roka: = LoadIcon (hInstance, 'ICOOK');
MinIcon [1]. Roka: = LoadIcon (hInstance, 'ICOFOLD');
NrIco: = 0;
Timer1.Interval: = 200;
konec;
...
postopek TfrMain. Timer1Timer (pošiljatelj: TObject);
beginif IsIconic (aplikacija. Ročaj) torejzačeti
NrIco: = (NrIco + 1) mod 2;
Uporaba. Ikona: = MinIcon [NrIco];
konec;
konec;
...
postopek TfrMain. FormDestroy (pošiljatelj: TObject);
začeti
MinIcon [0] .brez;
MinIcon [1] .Free;
konec;
V Timer1.OnTimer vodja dogodkov, IsMinimized Funkcija se uporablja za prikaz, ali moramo animirati svojo glavno ikono ali ne. Boljši način za dosego tega bi bil zajem gumbov za maksimiranje / minimiziranje in nato delovanje.
Zaključne besede
V datoteke z viri lahko umestimo karkoli (no, ne vsega). Ta članek vam je pokazal, kako uporabljati vire za uporabo / prikaz bitne slike, kazalca ali ikone v aplikaciji Delphi.
Opomba: Ko shranimo projekt Delphi na disk, Delphi samodejno ustvari eno datoteko .RES, ki ima isto ime kot projekt (če nič drugega, je glavna ikona projekta znotraj). Čeprav lahko spremenimo to datoteko virov, to ni priporočljivo.