Novo

Kako stvoriti i koristiti resurse u Visual Basic 6

Kako stvoriti i koristiti resurse u Visual Basic 6

Nakon što učenici Visual Basic nauče sve o petlji i uvjetnim izjavama i podprogramima i tako dalje, jedna od sljedećih stvari o kojoj često postavljaju pitanje je: „Kako dodati bitmapu, wav datoteku, prilagođeni kursor ili neki drugi poseban efekt? " Jedan odgovor je datoteke s resursima. Kada dodate datoteku koristeći datoteke resursa Visual Studio, oni se integrišu izravno u vaš Visual Basic projekat za maksimalnu brzinu izvršavanja i minimalno pakovanje paketa i raspoređivanje vaše aplikacije.

Datoteke resursa dostupne su i u VB 6 i u VB.NET-u, ali način na koji se koriste, kao i sve drugo, prilično je različit između dva sustava. Imajte na umu da ovo nije jedini način za korištenje datoteka u VB projektu, ali ima stvarne prednosti. Na primjer, možete uključiti bitmap u a PictureBox kontrolirati ili koristiti mciSendString Win32 API. "MCI" je prefiks koji obično označava multimedijski naredbeni niz.

Stvaranje datoteke s resursima u VB 6

Resurse u projektu možete vidjeti i u VB 6 i u VB.NET u Project Explorer prozor (Solution Explorer u VB.NET - morali su to učiniti malo drugačijim). Novi projekt neće imati jer resursi nisu zadani alat u VB-u 6. Dakle, dodajmo jednostavan resurs u projekat i pogledajmo kako se to radi.

Prvi korak je pokretanje VB 6 odabirom a Standardni EXE projekat na Novo u dijaloškom okviru pokretanja. Sada odaberite Dodaci opciju na traci izbornika, a zatim i Upravitelj dodataka… Otvoriće se prozor dijaloga Add-In Manager.

Pomičite se po listi i pronađite VB 6 Resource Editor. Možete ga samo dvaput kliknuti ili možete staviti kvačicu na Opterećen / istovaren da biste dodali ovaj alat vašem VB 6 okruženju. Ako mislite da ćete mnogo koristiti uređivača resursa, tada u njega možete staviti i kvačicu Učitajte pri pokretanju i ubuduće nećete morati ponovo da prođete kroz ovaj korak. Kliknite "OK" i otvori se uređivač resursa. Spremni ste za početak dodavanja resursa svom projektu!

Idite na traku menija i odaberite Projekat onda Dodajte novu datoteku resursa ili samo desnom tipkom miša kliknite uređivač resursa i odaberite "Otvori" iz kontekstnog izbornika koji se pojavi. Otvorit će se prozor koji će vas pitati za ime i lokaciju datoteke s resursima. Zadana lokacija vjerovatno neće biti onakva kakvu želite, pa idite na direktoriju projekta i unesite ime svoje nove datoteke s resursima u Ime dokumenta kutija. U ovom ću članku za ovu datoteku koristiti naziv "AboutVB.RES". Morat ćete potvrditi stvaranje datoteke u prozoru za provjeru, a datoteka "AboutVB.RES" će se stvoriti i popuniti u Uređivač resursa.

Podržava VB6

VB6 podržava sljedeće:

  • Strojni uređivač tablica
    ("Uređivanje nizova tablica ...")
  • Prilagođeni kursori - "CUR" datoteke
    ("Dodaj kursor ...")
  • Prilagođene ikone - datoteke "ICO"
    ("Dodaj ikonu ...")
  • Prilagođene bitmape - "BMP" datoteke
    ("Dodajte Bitmap ...")
  • Programski definirani resursi
    ("Dodaj prilagođeni resurs ...")

VB 6 nudi jednostavan uređivač za žice, ali morate imati datoteku kreiranu u drugom alatu za sve ostale izbore. Na primjer, mogli biste kreirati BMP datoteku pomoću jednostavnog programa Windows Paint.

Svaki izvor u datoteci resursa označava VB 6 s anId i ime u uređivaču resursa. Da biste resursu učinili dostupnim vašem programu, dodajte ih u uređivač resursa, a zatim pomoću id-a i resursa "Vrsta" ukažite na njih u svom programu. Dodajmo četiri ikone u datoteku resursa i iskoristimo ih u programu.

Kada dodate resurs, sama datoteka se kopira u vaš projekt. Visual Studio 6 pruža čitavu kolekciju ikona u mapi ...

C: Programske datoteke Microsoft Visual Studio Common Graphics Icons

Kako bismo išli sa tradicijom, iz poddirekcije Elementa izabrat ćemo četiri "elementa" grčkog filozofa Aristotela - zemlju, vodu, zrak i vatru. Kada ih dodate, identitet Visual Studio (101, 102, 103 i 104) automatski dodeljuje Id.

Za upotrebu ikona u programu koristimo VB 6 "Load Resource" funkciju. Postoji nekoliko sljedećih funkcija koje možete izabrati:

  • LoadResPicture (indeks, format) za bitmape, ikone i kursore

Koristite VB unaprijed određene konstantevbResBitmap za bitmape,vbResIcon za ikone ivbResCursor za kursore za parametar "format". Ova funkcija vraća sliku koju možete direktno koristiti.LoadResData (objašnjeno u nastavku) vraća niz koji sadrži stvarne bitove u datoteci. Vidjet ćemo kako to iskoristiti nakon što demonstriramo ikone.

  • LoadResString (indeks) za žice
  • LoadResData (indeks, format) za sve do 64K

Kao što je ranije napomenuto, ova funkcija vraća niz s stvarnim bitovima u resursu. Ovo su vrijednosti koje se ovdje mogu koristiti za parametar formata:

1 Resurs kursora
2 Resurs Bitmap
3 Resurs ikona
4 Resurs menija
5 Dijaloški okvir
6 String resurs
7 Resurs direktorija fontova
8 Font resurs
9 Tabela akceleratora
10 Resurs definiran od strane korisnika
12 Grupni kursor
14 Ikona grupe

Budući da u našoj datoteci resursa AboutVB.RES imamo četiri ikone, iskoristimoLoadResPicture (indeks, format) da biste ih dodijelili svojstvu Picture u CommandButtonu u VB 6.

Napravio sam aplikaciju sa četiriOpcijaButton komponente označene sa zemljom, vodom, zrakom i vatrom i četiri klika događaja - po jedan za svaku opciju. Zatim sam dodao aCommandButton i promijenio svojstvo Style u "1 - Graphical." Ovo je potrebno kako biste mogli dodati prilagođenu ikonu u CommandButton. Kôd za svaki OptionButton (i događaj Učitavanje obrasca - da se inicijalizira) izgleda ovako (sa Id i Caption promenjenim u skladu s tim za ostale događaje OptionButton Click):

Privatna pod-opcija1_Click ()
Command1.Picture = _
LoadResPicture (101, vbResIcon)
Command1.Caption = _
"Zemlja"
Kraj Sub

Prilagođeni resursi

"Velika stvar" s prilagođenim resursima je da obično morate osigurati način da se oni obrade u vašem programskom kodu. Kako Microsoft navodi, "ovo obično zahtijeva upotrebu Windows API poziva". To ćemo učiniti.

Primjer koji ćemo koristiti je brz način za učitavanje niza s nizom konstantnih vrijednosti. Zapamtite da je datoteka resursa uključena u vaš projekt, pa ako se vrijednosti koje morate učitati promijene, morat ćete koristiti tradicionalniji pristup, kao što je sekvencijalna datoteka koju otvarate i čitate. Windows API koji ćemo koristiti jeCopyMemory API. CopyMemory kopira blok memorije u drugi blok memorije bez obzira na vrstu podataka koji je tamo pohranjen. Ova tehnika je dobro poznata VB 6'ersu kao izuzetno brz način kopiranja podataka unutar programa.

Ovaj program je malo više uključen jer prvo moramo stvoriti datoteku resursa koja sadrži niz dugih vrijednosti. Jednostavno sam dodijelio vrijednosti polju:

Dim duge (10) Koliko dugo
longs (1) = 123456
duge (2) = 654321

… i tako dalje.

Tada se vrijednosti mogu upisati u datoteku zvanuMyLongs.longs pomoću izjave VB 6 "Put".

Dim hFile As Long
hFile = FreeFile ()
Otvori _
"C: vaš put datoteke MyLongs.longs" _
Za binarni format kao #hFile
Stavite #hFile,, dugme
Zatvori #hFile

Dobro je zapamtiti da se datoteka resursa ne mijenja ukoliko ne izbrišete staru i ne dodate novu. Dakle, koristeći ovu tehniku, morali biste ažurirati program da biste promijenili vrijednosti. Da biste datoteku MyLongs.longs uključili u svoj program kao resurs, dodajte je u datoteku resursa pomoću istih koraka opisanih gore, ali kliknite naDodaj prilagođeni resurs… umjesto Add Icon ... Zatim odaberite datoteku MyLongs.longs kao datoteku koju želite dodati. Također morate promijeniti "Type" resursa tako da desnom tipkom miša kliknete taj resurs, odaberete "Properties" i promijenite Type u "longs". Imajte na umu da je ovo vrsta datoteke vaše MyLongs.longs datoteke.

Da biste koristili datoteku resursa koju ste kreirali za stvaranje novog polja, najprije prijavite poziv Win32 CopyMemory API:

Privatno Izjavite Sub CopyMemory _
Alias ​​"kernel32" alias _
"RtlMoveMemory" (Odredište bilo koje, _
Izvor bilo koji, dužina ByVal koliko dugo)

Zatim pročitajte datoteku s resursima:

Dim bajtova () Kao bajt
bytes = LoadResData (101, "longs")

Zatim premjestite podatke iz bajtova polja u niz dugih vrijednosti. Dodijelite niz za vrijednosti longs koristeći cijelu vrijednost duljine niza bajtova podijeljenih s 4 (to jest, 4 bajta po dužini):

ReDim longs (1 To (UBound (bytes)) 4) As Long
CopyMemory duga (1), bajtova (0), UBound (bajtova) - 1

Sada, ovo može izgledati kao puno problema kad biste samo mogli inicijalizirati niz u događaju Učitavanje obrasca, ali on pokazuje kako koristiti prilagođeni resurs. Da imate veliki skup konstanti s kojima trebate inicijalizirati niz, on bi se pokrenuo brže od bilo koje druge metode o kojoj ja mogu razmišljati i ne biste morali imati zasebnu datoteku koja je uključena u vašu aplikaciju da biste to učinili.


Pogledajte video: Brain Tricks - This Is How Your Brain Works (Septembar 2021).