Po tem, ko učenci Visual Basic izvedo vse o zankah in pogojnih stavkih in podprogramih in podobno, eno od naslednjih stvari, o katerih se pogosto sprašujejo, je: "Kako naj dodam bitno sliko, wav datoteko, kazalec po meri ali kakšen drug poseben učinek?" Eno odgovor je datoteke z viri. Ko dodate datoteko z datotekami virov Visual Studio, so te integrirane neposredno v vaš projekt Visual Basic za največjo hitrost izvajanja in minimalne težave pakiranje in uvajanje svoj prijava.
Datoteke virov so na voljo tako v VB 6 kot v VB.NET, a način uporabe, kot vse ostalo, je med obema sistemoma precej drugačen. Upoštevajte, da to ni edini način uporabe datotek v projektu VB, ampak ima resnične prednosti. Na primer, lahko vključite bitne slike v PictureBox nadzirati ali uporabljati mciSendString Win32 API. "MCI" je predpona, ki ponavadi označuje večpredstavnostni ukazni niz.
Ustvarjanje datoteke z viri v VB 6
Viri v projektu lahko vidite tako v VB 6 kot v VB.NET v Raziskovalec projektov okno (raziskovalec rešitev v VB.NET - morali so ga narediti le nekoliko drugače). Nov projekt ne bo imel nobenega, saj viri niso privzeto orodje v VB 6. Torej, projektu dodamo preprost vir in poglejmo, kako je to storjeno.
Prvi korak je zagon VB 6 z izbiro a Standardni EXE projekt na Novo v pogovornem oknu za zagon. Zdaj izberite Dodatki možnost v menijski vrstici in nato Upravitelj dodatkov ... Odprlo se bo pogovorno okno upravitelja dodatkov.
Pomaknite se navzdol po seznamu in poiščite VB 6 Urejevalnik virov. Lahko ga samo dvokliknete ali pa v polje Naloženo / Neobremenjeno polje, da dodate to orodje v vaše okolje VB 6. Če mislite, da boste urejevalnik virov uporabljali veliko, potem lahko v polje postavite tudi kljukico Naložite ob zagonu in v prihodnosti vam ne bo treba ponovno preiskovati tega koraka. Kliknite »V redu« in odprl se bo Urejevalnik virov. Pripravljeni ste začeti dodajati vire v svoj projekt!
Pojdite na menijsko vrstico in izberite Projekt torej Dodaj novo datoteko virov ali z desno miškino tipko kliknite urejevalnik virov in v kontekstnem meniju, ki se pojavi, izberite "Odpri". Odpre se okno, ki vas bo pozvalo k imenu in lokaciji datoteke z viri. Privzeta lokacija najbrž ne bo želena, zato se pomaknite do mape projekta in vnesite ime svoje nove vire v mapo Ime datoteke škatla. V tem članku bom za to datoteko uporabil ime "AboutVB.RES". V potrditvenem oknu boste morali potrditi ustvarjanje datoteke in ustvarjena bo datoteka "AboutVB.RES" in izpolnjena v urejevalniku virov.
VB6 podpira
VB6 podpira naslednje:
- Urejevalnik nizov tabel
("Urejanje tabel nizov ...") - Kazalci po meri - datoteke "CUR"
("Dodaj kazalec ...") - Ikone po meri - datoteke "ICO"
("Dodaj ikono ...") - Bitne slike po meri - datoteke "BMP"
("Dodaj Bitmap ...") - Programerje opredeljeni viri
("Dodaj vir po meri ...")
VB 6 ponuja preprost urejevalnik strun, vendar morate imeti datoteko ustvarjeno v drugem orodju za vse druge možnosti. Na primer, lahko ustvarite datoteko BMP s preprostim programom Windows Paint.
Vsak vir v datoteki z viri VB 6 prepozna s Id in ime v urejevalniku virov. Če želite svojemu programu omogočiti dostop do virov, jih dodate v urejevalnik virov in nato uporabite ID in vir "Vrste", da jih usmerite v svoj program. V datoteko z viri dodamo štiri ikone in jih uporabimo v programu.
Ko dodate vir, se dejanska datoteka sama kopira v vaš projekt. Visual Studio 6 ponuja celotno zbirko ikon v mapi ...
C: \ Programske datoteke \ Microsoft Visual Studio \ Skupne \ Grafika \ Ikone
Za nadaljevanje tradicije bomo iz podimenika Elementi izbrali štiri "elemente" grškega filozofa Aristotela - Zemljo, vodo, zrak in ogenj. Ko jih dodate, identiteto Visual Studio (101, 102, 103 in 104) samodejno dodeli ID.
Za uporabo ikon v programu uporabljamo funkcijo VB 6 "Naloži vir". Izbirate lahko med temi funkcijami:
- Slika LoadRes (kazalo, oblika) za bitne slike, ikone in kazalce
Uporabite VB vnaprej določene konstante vbResBitmap za bitne slike, vbResIcon za ikone in vbResCursor za kazalce za parameter "format". Ta funkcija vrne sliko, ki jo lahko uporabite neposredno. Naložite podatke (pojasnjeno spodaj) vrne niz, ki vsebuje dejanske bite v datoteki. Po prikazovanju ikon bomo videli, kako to uporabiti.
- LoadResString (indeks) za strune
- LoadResData (indeks, oblika) za karkoli do 64K
Kot smo že omenili, ta funkcija vrne niz z dejanskimi bitji v viru. To so vrednosti, ki jih lahko tukaj uporabimo za parameter formata:
1 Viri kurzorja
2 Vir slike
3 Vir ikon
4 Menijski vir
5 Pogovorno okno
6 String vir
7 Sredstvo imenika pisav
8 Vir pisave
9 Tabela pospeševalnikov
10 Uporabniško določen vir
12 Skupinski kazalec
14 Ikona skupine
Ker imamo v datoteki virov AboutVB.RES štiri ikone, uporabimo Slika LoadRes (kazalo, oblika) da jih dodelite lastnosti Picture v CommandButtonu v VB 6.
Ustvaril sem aplikacijo s štirimi Možnost gumb sestavni deli z oznako Zemlja, voda, zrak in ogenj ter štirje kliki - po en za vsako možnost. Nato sem dodal a CommandButton in spremenil lastnost Style v "1 - grafično." To je potrebno za dodajanje ikone po meri v ukazni gumb. Koda za vsak OptionButton (in dogodek Obremenitev obrazca - za njegovo inicializacijo) izgleda tako (z ID-jem in napisom, ki sta se ustrezno spremenila za druge dogodke OptionButton Click):
Viri po meri
"Velika težava" s sredstvi po meri je, da običajno morate v programski kodi določiti način za njihovo obdelavo. Kot Microsoft navaja, "to ponavadi zahteva uporabo klicev Windows API." To bomo storili.
Primer, ki ga bomo uporabili, je hiter način za nalaganje matrike z nizom konstantnih vrednosti. Ne pozabite, da je datoteka vira vključena v vaš projekt, tako da, če vrednosti, ki jih morate naložiti spremembo, morali boste uporabiti bolj tradicionalen pristop, kot je zaporedna datoteka, ki jo odprete in prebrati. Windows API, ki ga bomo uporabljali, je CopyMemory API. CopyMemory kopira pomnilnik v drug blok pomnilnika, ne glede na vrsto podatkov, ki je tam shranjena. Ta tehnika je VB 6'ers dobro znana kot izjemno hiter način kopiranja podatkov znotraj programa.
Ta program je nekoliko bolj vključen, ker moramo najprej ustvariti datoteko z viri, ki vsebuje niz dolgih vrednosti. V matriki sem preprosto dodeljena vrednosti:
Zatemnjene (10) Kot dolge
dolge (1) = 123456
dolge (2) = 654321
... in tako naprej.
Nato lahko vrednosti zapišemo v datoteko, imenovano MyLongs.longs z uporabo stavka VB 6 "Put".
Dobro je zapomniti, da se datoteka z viri ne spremeni, če ne izbrišete stare in dodate nove. Z uporabo te tehnike bi morali program spremeniti, če želite spremeniti vrednosti. Če želite v svoj program vključiti datoteko MyLongs.longs, jo dodajte v datoteko z istimi koraki, opisano zgoraj, vendar kliknite na Dodaj vir po meri ... namesto Dodaj ikono... Nato izberite datoteko MyLongs.longs kot datoteko, ki jo želite dodati. Prav tako morate spremeniti "Type" vira, tako da z desnim klikom na ta vir izberete "Properties" in spremenite Type v "longs". Upoštevajte, da je to vrsta datoteke vaše datoteke MyLongs.longs.
Če želite uporabiti datoteko virov, ki ste jo ustvarili za ustvarjanje novega niza, najprej prijavite klic API-ja Win32 CopyMemory:
Nato preberite datoteko z viri:
Nato premaknite podatke iz matrike bajtov v niz dolgih vrednosti. Dodelite matriko za vrednosti longs z uporabo celotne vrednosti dolžine niza bajtov, deljenega s 4 (to je 4 bajte na dolžino):
Zdaj se to lahko zdi veliko težav, ko lahko matriko samo inicializirate v dogodku Obremenitev obrazca, vendar kljub temu prikazuje, kako uporabljati vir po meri. Če bi imeli velik nabor konstant, s katerimi bi morali inicializirati matriko, bi tekel hitreje kot kateri koli druge metode, ki si jih lahko omislim, in za to vam ne bi bilo treba imeti ločene datoteke, ki bi bila vključena v vašo prijavo to.