Kako ustvariti in uporabljati vire v Visual Basicu 6

Poslovnež, ki dela za računalnikom v pisarni

Jetta Productions / Getty Images





Potem ko se učenci Visual Basica naučijo vse o zankah in pogojnih stavkih ter podprogramih in tako naprej, je ena od naslednjih stvari, o kateri se pogosto sprašujejo, 'Kako dodam bitno sliko, datoteko wav, kazalec po meri ali kakšen drug poseben učinek?' ' En odgovor je datoteke virov . Ko dodate datoteko z datotekami virov Visual Studio, so integrirane neposredno v vaš projekt Visual Basic za največjo hitrost izvajanja in najmanj težav pakiranje in uvajanje tvojeaplikacija.

Datoteke virov so na voljo tako v VB 6 kot v VB.NET , vendar se način njihove uporabe, kot vse drugo, med obema sistemoma precej razlikuje. Ne pozabite, da to ni edini način za uporabo datotek v projektu VB, vendar ima resnične prednosti. Na primer, lahko vključite bitno sliko v a PictureBox nadzor ali uporabo mciSendString Win32 API. 'MCI' je predpona, ki običajno označuje večpredstavnostni ukazni niz.



Ustvarjanje datoteke virov v VB 6

Vire v projektu lahko vidite v VB 6 in VB.NET v Raziskovalec projektov okno (Raziskovalec rešitev v VB.NET — morali so ga narediti le malo drugačnega). Nov projekt jih ne bo imel, ker viri niso privzeto orodje v VB 6. Zato dodajmo preprost vir projektu in poglejmo, kako se to naredi.

Prvi korak je zagon VB 6 z izbiro a Standardni EXE projekt na Novo v zagonskem pogovornem oknu. Zdaj izberite Dodatki možnost v menijski vrstici in nato Upravitelj dodatkov ... S tem se odpre pogovorno okno upravitelja dodatkov.



Pomaknite se navzdol po seznamu in poiščite Urejevalnik virov VB 6 . Lahko ga preprosto dvokliknete ali pa postavite kljukico v Naloženo/razloženo polje za dodajanje tega orodja v vaše okolje VB 6. Če mislite, da boste urejevalnik virov pogosto uporabljali, lahko v polje postavite tudi kljukico Naloži ob zagonu in v prihodnosti vam tega koraka ne bo treba ponoviti. Kliknite »V redu« in odpre se urejevalnik virov. Pripravljeni ste, da začnete dodajati vire svojemu projektu!

Pojdite v menijsko vrstico in izberite Projekt potem Dodajte novo datoteko virov ali preprosto kliknite z desno miškino tipko v urejevalniku virov in izberite 'Odpri' v kontekstnem meniju, ki se prikaže. Odprlo se bo okno, v katerem boste morali vnesti ime in lokacijo datoteke virov. Privzeta lokacija verjetno ne bo to, kar želite, zato se pomaknite do mape projekta in vnesite ime vaše nove datoteke virov v Ime datoteke škatla. V tem članku bom za to datoteko uporabil ime 'AboutVB.RES'. Ustvarjanje datoteke boste morali potrditi v oknu za preverjanje in datoteka 'AboutVB.RES' bo ustvarjena in izpolnjena v urejevalnik virov.

Podpira VB6

VB6 podpira naslednje:

  • Urejevalnik tabele nizov
    ('Urejanje tabel nizov ...')
  • Kazalci po meri - datoteke 'CUR'
    ('Dodaj kazalec ...')
  • Ikone po meri - datoteke 'ICO'
    ('Dodaj ikono ...')
  • Bitne slike po meri - datoteke 'BMP'
    ('Dodaj bitno sliko ...')
  • Viri, ki jih določi programer
    ('Dodaj vir po meri ...')

VB 6 ponuja preprost urejevalnik za nize, vendar morate za vse druge možnosti imeti datoteko, ustvarjeno v drugem orodju. Ustvarite lahko na primer datoteko BMP s preprostim programom Windows Paint.



Vsak vir v datoteki virov je v VB 6 identificiran z oznako Id in ime v urejevalniku virov. Če želite dati vir na voljo vašemu programu, ga dodate v urejevalnik virov in nato uporabite ID in vir 'Vrsta', da pokažete nanje v svojem programu. Dodajmo štiri ikone v datoteko virov in jih uporabimo v programu.

Ko dodate vir, se dejanska datoteka prekopira v vaš projekt. Visual Studio 6 nudi celotno zbirko ikon v mapi ...



C:Programske datotekeMicrosoft Visual StudioCommonGraphicsIcons

V skladu s tradicijo bomo iz podimenika Elementi izbrali štiri 'elemente' grškega filozofa Aristotela — zemljo, vodo, zrak in ogenj. Ko jih dodate, Visual Studio (101, 102, 103 in 104) samodejno dodeli ID.



Za uporabo ikon v programu uporabljamo funkcijo VB 6 'Naloži vir'. Na izbiro je več teh funkcij:

    LoadResPicture(indeks, oblika)za bitne slike, ikone in kazalce

Uporabite vnaprej določene konstante VB vbResBitmap za bitne slike, vbResIcon za ikone in vbResCursor za kazalce za parameter 'format'. Ta funkcija vrne sliko, ki jo lahko uporabite neposredno. LoadResData (razloženo spodaj) vrne niz, ki vsebuje dejanske bite v datoteki. Ko bomo prikazali ikone, bomo videli, kako to uporabiti.



    LoadResString(index)za struneLoadResData(indeks, oblika)za vse do 64K

Kot smo že omenili, ta funkcija vrne niz z dejanskimi biti v viru. To so vrednosti, ki jih lahko uporabite za parameter formata tukaj:

1 Vir kazalca
2 Vir bitne slike
3 Vir ikon
4 Vir menija
5 Pogovorno okno
6 Vir niza
7 Vir imenika pisav
8 Vir pisave
9 Tabela pospeševalnika
10 Uporabniško določen vir
12 Skupinski kazalec
14 Ikona skupine

Ker imamo v naši datoteki virov AboutVB.RES štiri ikone, uporabimo LoadResPicture(indeks, oblika) da jih dodelite lastnosti Picture gumba CommandButton v VB 6.

Ustvaril sem aplikacijo s štirimi OptionButton komponente z oznako Zemlja, Voda, Zrak in Ogenj ter štirje dogodki klika — eden za vsako možnost. Nato sem dodal a CommandButton in spremenili lastnost Style na '1 – Grafično.' To je potrebno, da lahko gumbu CommandButton dodate ikono po meri. Koda za vsak gumb OptionButton (in dogodek Form Load — za njegovo inicializacijo) je videti tako (z ustrezno spremenjenima ID-jem in napisom za druge dogodke klika gumba OptionButton):

Viri po meri

'Velika stvar' pri virih po meri je, da morate običajno zagotoviti način za njihovo obdelavo v vaši programski kodi. Kot Microsoft navaja, 'to običajno zahteva uporabo klicev Windows API.' To bomo storili.

Primer, ki ga bomo uporabili, je hiter način za nalaganje matrike z vrsto stalnih vrednosti. Ne pozabite, da je datoteka virov vključena v vaš projekt, tako da če se vrednosti, ki jih morate naložiti, spremenijo, boste morali uporabiti bolj tradicionalen pristop, kot je zaporedna datoteka, ki jo odprete in preberete. Windows API, ki ga bomo uporabili, je CopyMemory API. CopyMemory kopira blok pomnilnika v drug blok pomnilnika ne glede na vrsto podatkov, ki so tam shranjeni. Ta tehnika je uporabnikom VB 6's dobro znana kot ultra hiter način kopiranja podatkov znotraj programa.

Ta program je nekoliko bolj zapleten, ker moramo najprej ustvariti datoteko virov, ki vsebuje niz dolgih vrednosti. Enostavno sem dodelil vrednosti matriki:

Dim longs(10) As Long
longs(1) = 123456
longs(2) = 654321

... in tako naprej.

Nato lahko vrednosti zapišete v datoteko, imenovano MyLongs.longs z uporabo stavka VB 6 'Put'.

Dobro si je zapomniti, da se datoteka virov ne spremeni, razen če izbrišete staro in dodate novo. Torej, z uporabo te tehnike bi morali posodobiti program, da bi spremenili vrednosti. Če želite datoteko MyLongs.longs vključiti v svoj program kot vir, jo dodajte v datoteko virov po enakih korakih, kot je opisano zgoraj, vendar kliknite Dodaj vir po meri ... namesto Dodaj ikono ... Nato izberite datoteko MyLongs.longs kot datoteko, ki jo želite dodati. Prav tako morate spremeniti 'Vrsto' vira tako, da z desno miškino tipko kliknete ta vir, izberete 'Lastnosti' in spremenite vrsto v 'dolgi'. Upoštevajte, da je to vrsta datoteke vaše datoteke MyLongs.longs.

Če želite uporabiti datoteko virov, ki ste jo ustvarili za ustvarjanje novega polja, najprej deklarirajte klic Win32 CopyMemory API:

Nato preberite datoteko virov:

Nato premaknite podatke iz niza bajtov v niz dolgih vrednosti. Dodelite matriko za vrednosti longs z uporabo cele vrednosti dolžine niza bajtov, deljene s 4 (to je 4 bajte na long):

Zdaj se to morda zdi veliko težav, ko bi lahko samo inicializirali matriko v dogodku nalaganja obrazca, vendar prikazuje, kako uporabiti vir po meri. Če bi imeli velik nabor konstant, s katerimi bi morali inicializirati matriko, bi delovala hitreje kot katera koli druga metoda, ki se je spomnim, in za to vam ne bi bilo treba imeti ločene datoteke, vključene v aplikacijo.