După ce Visual Basic elevii învață totul despre bucle și declarații condiționale și subrutine și așa mai departe, una dintre următoarele lucrurile despre care se întreabă adesea sunt: „Cum pot adăuga un bitmap, un fișier wav, un cursor personalizat sau un alt efect special?” unu raspunsul este fișiere resurse. Când adăugați un fișier folosind fișierele de resurse Visual Studio, acestea sunt integrate direct în proiectul dvs. Visual Basic pentru viteza maximă de execuție și dificultățile minime ambalarea și desfășurarea ta cerere.
Fișierele de resurse sunt disponibile atât în VB 6 cât și în VB.NET, dar modul în care sunt folosite, ca orice altceva, este cu totul diferit între cele două sisteme. Rețineți că aceasta nu este singura modalitate de a utiliza fișierele într-un proiect VB, dar are avantaje reale. De exemplu, puteți include o hârtie de bit într-un PictureBox controlați sau utilizați mciSendString API-ul Win32. „MCI” este un prefix care indică de obicei o șir de comandă multimedia.
Crearea unui fișier de resurse în VB 6
Puteți vedea resursele unui proiect atât în VB 6, cât și în VB.NET în Explorator de proiecte fereastră (Solution Explorer în VB.NET - trebuiau să-l facă doar un pic diferit). Un nou proiect nu va avea, deoarece resursele nu sunt un instrument implicit în VB 6. Deci, să adăugăm o resursă simplă la un proiect și să vedem cum se face asta.
Primul pas este să porniți VB 6 selectând a EXE standard proiect pe Nou fila din dialogul de pornire. Acum selectați butonul Adăugați ins opțiunea din bara de meniu, apoi pe Manager suplimentar ... Aceasta va deschide fereastra de dialog Add-In Manager.
Parcurgeți lista în jos și găsiți Editor de resurse VB 6. Puteți doar să faceți dublu clic pe el sau puteți pune o notă de selectare în Sunt încărcate / descărcate caseta pentru a adăuga acest instrument în mediul dvs. VB 6. Dacă credeți că veți utiliza foarte mult editorul de resurse, atunci puteți de asemenea să plasați o marcă de selectare în casetă Încărcați la pornire și nu va trebui să parcurgi acest pas din nou în viitor. Faceți clic pe „OK” și se deschide editorul de resurse. Ești gata să începi să adaugi resurse proiectului tău!
Accesați bara de meniu și selectați Proiect apoi Adăugați un nou fișier de resurse sau faceți clic dreapta pe Editorul de resurse și selectați „Deschide” din meniul contextual care apare. Se va deschide o fereastră, care vă va solicita numele și locația unui fișier de resurse. Locația implicită nu va fi cea dorită, deci navigați în folderul proiectului și introduceți numele noului fișier de resurse în Nume de fișier cutie. În acest articol, voi folosi numele „AboutVB.RES” pentru acest fișier. Va trebui să confirmați crearea fișierului într-o fereastră de verificare, iar fișierul „AboutVB.RES” va fi creat și completat în Editorul de resurse.
Suporturi VB6
VB6 acceptă următoarele:
- Un editor de tabele de șiruri
("Modificați tabele cu șiruri ...") - Cursoare personalizate - fișiere „CUR”
(„Adăugați cursorul ...”) - Pictograme personalizate - fișiere „ICO”
(„Adăugați pictograma ...”) - Fișe de bit personalizate - fișiere „BMP”
(„Adăugați Bitmap ...”) - Resurse definite de programator
(„Adăugați resurse personalizate ...”)
VB 6 oferă un editor simplu pentru șiruri, dar trebuie să aveți un fișier creat într-un alt instrument pentru toate celelalte opțiuni. De exemplu, puteți crea un fișier BMP utilizând programul simplu Windows Paint.
Fiecare resursă din fișierul de resurse este identificată la VB 6 de către un id-ul și un nume în editorul de resurse. Pentru a pune la dispoziția programului o resursă, le adăugați în Editorul de resurse și apoi utilizați ID-ul și resursa „Tip” pentru a le indica în programul dvs. Să adăugăm patru pictograme în fișierul de resurse și să le folosim în program.
Când adăugați o resursă, fișierul propriu-zis este copiat în proiectul dvs. Visual Studio 6 oferă o întreagă colecție de icoane din folder ...
C: \ Fișiere de program \ Microsoft Visual Studio \ Common \ Grafică \ Pictograme
Pentru a merge cu tradiția, vom selecta cele patru „elemente” ale filosofului grec Aristotel - Pământ, Apă, Aer și Foc - din subdirectorul Elemente. Când le adăugați, ID-ul este atribuit automat de Visual Studio (101, 102, 103 și 104).
Pentru a utiliza pictogramele dintr-un program, folosim o funcție VB 6 „Load Resource”. Există mai multe dintre aceste funcții din care puteți alege:
- LoadResPicture (index, format) pentru hărți de bit, pictograme și cursoare
Utilizați constantele predefinite VB vbResBitmap pentru hărți de bit, vbResIcon pentru icoane și vbResCursor pentru cursoare pentru parametrul "format". Această funcție returnează o imagine pe care o puteți utiliza direct. LoadResData (explicat mai jos) returnează un șir care conține biții efectivi din fișier. Vom vedea cum să o utilizăm după ce vom demonstra pictogramele.
- LoadResString (index) pentru corzi
- LoadResData (index, format) pentru orice până la 64K
După cum sa menționat anterior, această funcție returnează o șir cu biții efectivi din resursă. Acestea sunt valorile care pot fi utilizate pentru parametrul format aici:
1 Resursă cursor
2 resursă Bitmap
3 Resursă pictogramă
4 Resursă de meniu
5 Caseta de dialog
Resursă cu 6 șiruri
7 Resursă director de fonturi
8 resursă font
9 Masa de accelerație
10 Resursă definită de utilizator
12 Cursor de grup
14 Pictograma grupului
Deoarece avem patru pictograme în fișierul nostru de resurse AboutVB.RES, să le folosim LoadResPicture (index, format) să le atribuiți proprietății Picture a unui CommandButton în VB 6.
Am creat o aplicație cu patru OptionButton componente etichetate Pământ, Apă, Aer și Foc și patru evenimente Click - unul pentru fiecare opțiune. Apoi am adăugat un Butonul de comanda și a modificat proprietatea Style în „1 - Grafic”. Acest lucru este necesar pentru a putea adăuga o pictogramă personalizată în CommandButton. Codul pentru fiecare OptionButton (și evenimentul Form Load - pentru inițializarea acestuia) arată așa (cu ID-ul și Legenda modificate corespunzător pentru celelalte evenimente OptionButton Click):
Resurse personalizate
„Acordul mare” cu resursele personalizate este că, în mod normal, trebuie să oferiți o modalitate de a le prelucra în codul programului. La fel de Microsoft afirmă că "acest lucru necesită, de obicei, apeluri la API-ul Windows." Asta vom face.
Exemplul pe care îl vom folosi este un mod rapid de a încărca un tablou cu o serie de valori constante. Amintiți-vă că fișierul de resurse este inclus în proiectul dvs., deci în cazul în care valorile pe care trebuie să le încărcați schimbare, va trebui să utilizați o abordare mai tradițională, cum ar fi un fișier secvențial pe care îl deschideți și citit. API-ul Windows pe care îl vom folosi este CopyMemory API-ul. CopyMemory copiază blocul de memorie într-un alt bloc de memorie, fără a ține cont de tipul de date care este stocat acolo. Această tehnică este bine cunoscută de VB 6'ers ca fiind o modalitate ultra rapidă de a copia date în cadrul unui program.
Acest program este un pic mai implicat, deoarece mai întâi trebuie să creăm un fișier de resurse care conține o serie de valori lungi. Pur și simplu am atribuit valori unui tablou:
Dim longs (10) As Long
longs (1) = 123456
longs (2) = 654321
... si asa mai departe.
Apoi valorile pot fi scrise într-un fișier numit MyLongs.longs folosind instrucțiunea VB 6 „Pune”.
Este o idee bună să vă amintiți că fișierul de resurse nu se schimbă decât dacă îl ștergeți pe cel vechi și adăugați unul nou. Deci, folosind această tehnică, ar trebui să actualizați programul pentru a modifica valorile. Pentru a include fișierul MyLongs.longs în programul dvs. ca resursă, adăugați-l într-un fișier de resurse utilizând aceiași pași descriși mai sus, dar faceți clic pe Adăugați resurse personalizate ... în loc de Adăugare pictogramă... Apoi selectați fișierul MyLongs.longs ca fișier de adăugat. De asemenea, trebuie să schimbați „Tipul” resursei făcând clic dreapta pe acea resursă, selectând „Proprietăți” și schimbând Tipul în „lung”. Rețineți că acesta este tipul de fișier al fișierului dvs. MyLongs.longs.
Pentru a utiliza fișierul de resurse pe care l-ați creat pentru a crea un nou tablou, mai întâi declarați apelul API Win32 CopyMemory:
Apoi citiți fișierul de resurse:
Apoi, mutați datele din tabloul de octeți într-un tablou cu valori lungi. Alocați un tablou pentru valorile longs folosind valoarea integrală a lungimii șirului de octeți împărțit la 4 (adică 4 bytes pe lung):
Acum, acest lucru poate părea o mulțime de probleme atunci când ați putea inițializa matricea în evenimentul de încărcare Form, dar demonstrează cum să utilizați o resursă personalizată. Dacă aveți un set mare de constante cu care aveți nevoie pentru a inițializa matricea, acesta ar rula mai repede decât oricare altă metodă la care mă pot gândi și nu ar trebui să aveți un fișier separat inclus în aplicația dvs. aceasta.