Bronnen maken en gebruiken in Visual Basic 6

Na Visual Basic leren studenten alles over lussen en voorwaardelijke instructies en subroutines, enzovoort, een van de volgende dingen waar ze vaak naar vragen is: "Hoe voeg ik een bitmap, een wav-bestand, een aangepaste cursor of een ander speciaal effect toe?" een antwoord is bronbestanden. Wanneer u een bestand toevoegt met Visual Studio-bronbestanden, worden ze rechtstreeks in uw Visual Basic-project geïntegreerd voor maximale uitvoeringssnelheid en minimale rompslomp verpakken en inzetten uw toepassing.

Bronbestanden zijn beschikbaar in zowel VB 6 als VB.NET, maar de manier waarop ze worden gebruikt, zoals al het andere, is nogal verschillend tussen de twee systemen. Houd er rekening mee dat dit niet de enige manier is om bestanden in een VB-project te gebruiken, maar het heeft echte voordelen. U kunt bijvoorbeeld een bitmap opnemen in een Foto doos controle of gebruik de mciSendString Win32 API. "MCI" is een voorvoegsel dat gewoonlijk een multimedia-opdrachtreeks aangeeft.

Een bronbestand maken in VB 6

instagram viewer

U kunt de bronnen in een project zien in zowel VB 6 als VB.NET in de Projectverkenner venster (Solution Explorer in VB.NET - ze moesten het net een klein beetje anders maken). Een nieuw project heeft er geen omdat bronnen geen standaardtool zijn in VB 6. Laten we dus een eenvoudige bron aan een project toevoegen en kijken hoe dat wordt gedaan.

Stap één is om VB 6 te starten door a te selecteren Standaard EXE project op de Nieuw tabblad in het opstartvenster. Selecteer nu de Invoegtoepassingen optie op de menubalk en vervolgens de Add-In Manager ... Dit opent het dialoogvenster Add-In Manager.

Blader door de lijst en zoek VB 6 Resource Editor. U kunt er gewoon op dubbelklikken of u kunt een vinkje plaatsen in de Geladen / ongeladen box om deze tool toe te voegen aan uw VB 6-omgeving. Als je denkt dat je de Resource Editor veel gaat gebruiken, dan kun je ook een vinkje plaatsen in het vak Laad bij het opstarten en u hoeft deze stap in de toekomst niet meer te doorlopen. Klik op "OK" en de Resources Editor verschijnt. U bent klaar om te beginnen met het toevoegen van bronnen aan uw project!

Ga naar de menubalk en selecteer Project vervolgens Nieuw bronbestand toevoegen of klik met de rechtermuisknop in de Resource Editor en selecteer "Openen" in het contextmenu dat verschijnt. Er wordt een venster geopend waarin u wordt gevraagd naar de naam en locatie van een bronbestand. De standaardlocatie is waarschijnlijk niet wat u zoekt, dus navigeer naar uw projectmap en voer de naam van uw nieuwe bronbestand in de Bestandsnaam doos. In dit artikel gebruik ik de naam "AboutVB.RES" voor dit bestand. U moet de aanmaak van het bestand bevestigen in een verificatievenster en het "AboutVB.RES" -bestand wordt aangemaakt en in de Resource Editor ingevuld.

VB6 ondersteunt

VB6 ondersteunt het volgende:

  • Een stringtabel-editor
    ("Stringtabellen bewerken ...")
  • Aangepaste cursors - "CUR" -bestanden
    ("Cursor toevoegen ...")
  • Aangepaste pictogrammen - "ICO" -bestanden
    ("Pictogram toevoegen ...")
  • Aangepaste bitmaps - "BMP" -bestanden
    ("Bitmap toevoegen ...")
  • Door programmeur gedefinieerde bronnen
    ("Add Custom Resource ...")

VB 6 biedt een eenvoudige editor voor strings, maar je moet een bestand hebben gemaakt in een andere tool voor alle andere keuzes. U kunt bijvoorbeeld een BMP-bestand maken met het eenvoudige Windows Paint-programma.

Elke bron in het bronbestand wordt geïdentificeerd aan VB 6 door een ID kaart en een naam in de Resource Editor. Om een ​​bron beschikbaar te maken voor uw programma, voegt u ze toe in de Resource Editor en gebruikt u vervolgens de ID en de bron "Type" om ernaar te verwijzen in uw programma. Laten we vier pictogrammen toevoegen aan het bronbestand en ze gebruiken in het programma.

Wanneer u een bron toevoegt, wordt het daadwerkelijke bestand zelf naar uw project gekopieerd. Visual Studio 6 biedt een hele verzameling pictogrammen in de map ...

C: \ Program Files \ Microsoft Visual Studio \ Common \ Graphics \ Icons

Traditiegetrouw selecteren we uit de submap Elementen de vier 'elementen' van de Griekse filosoof Aristoteles: aarde, water, lucht en vuur. Wanneer u ze toevoegt, wordt de ID automatisch toegewezen door Visual Studio (101, 102, 103 en 104).

Om de pictogrammen in een programma te gebruiken, gebruiken we een VB 6 "Load Resource" -functie. U kunt uit een aantal van deze functies kiezen:

  • LoadResPicture (index, formaat) voor bitmaps, pictogrammen en cursors

Gebruik de vooraf gedefinieerde VB-constanten vbResBitmap voor bitmaps, vbResIcon voor pictogrammen, en vbResCursor voor cursors voor de "format" parameter. Deze functie retourneert een afbeelding die u direct kunt gebruiken. LoadResData (hieronder uitgelegd) retourneert een tekenreeks die de daadwerkelijke bits in het bestand bevat. We zullen zien hoe we dat kunnen gebruiken nadat we pictogrammen hebben gedemonstreerd.

  • LoadResString (index) voor strijkers
  • LoadResData (index, formaat) voor alles tot 64K

Zoals eerder opgemerkt, retourneert deze functie een string met de daadwerkelijke bits in de bron. Dit zijn de waarden die hier kunnen worden gebruikt voor de formaatparameter:

1 Cursorbron
2 Bitmap-bron
3 Pictogrambron
4 Menubron
5 Dialoogvenster
6 String resource
7 Lettertype-directorybron
8 Lettertypebron
9 Acceleratortabel
10 Door de gebruiker gedefinieerde bron
12 Groepscursor
14 Groepspictogram

Omdat we vier pictogrammen hebben in ons AboutVB.RES-bronbestand, laten we het gebruiken LoadResPicture (index, formaat) om deze toe te wijzen aan de eigenschap Picture van een CommandButton in VB 6.

Ik heb een applicatie gemaakt met vier OptionButton componenten met het label Aarde, Water, Lucht en Vuur en vier Click-evenementen - één voor elke optie. Vervolgens heb ik een Command knop en veranderde de Style eigenschap in "1 - Graphical". Dit is nodig om een ​​aangepast pictogram aan de CommandButton toe te kunnen voegen. De code voor elke OptionButton (en de Form Load-gebeurtenis - om deze te initialiseren) ziet er als volgt uit (met de Id en Caption dienovereenkomstig gewijzigd voor de andere OptionButton Click-gebeurtenissen):

Aangepaste bronnen

Het "grote probleem" met aangepaste bronnen is dat u normaal gesproken een manier moet bieden om ze in uw programmacode te verwerken. Net zo Microsoft stelt: "hiervoor is meestal het gebruik van Windows API-aanroepen vereist." Dat is wat we gaan doen.

Het voorbeeld dat we zullen gebruiken, is een snelle manier om een ​​array met een reeks constante waarden te laden. Onthoud dat het bronbestand is opgenomen in uw project, dus als de waarden die u moet laden wijzigen, moet u een meer traditionele benadering gebruiken, zoals een sequentieel bestand dat u opent en lezen. De Windows API die we gebruiken is de CopyMemory API. CopyMemory kopieert een geheugenblok naar een ander geheugenblok ongeacht het gegevenstype dat daar is opgeslagen. Deze techniek is bij VB 6'ers bekend als een ultrasnelle manier om gegevens binnen een programma te kopiëren.

Dit programma is iets meer betrokken omdat we eerst een bronbestand moeten maken met een reeks lange waarden. Ik heb eenvoudig waarden toegewezen aan een array:

Dim longs (10) Zo lang
longs (1) = 123456
longs (2) = 654321

... enzovoorts.

Vervolgens kunnen de waarden worden geschreven naar een bestand met de naam MyLongs.longs met behulp van de VB 6 "Put" -instructie.

Het is een goed idee om te onthouden dat het bronbestand niet verandert, tenzij je de oude verwijdert en een nieuwe toevoegt. Dus met deze techniek zou je het programma moeten updaten om de waarden te veranderen. Om het bestand MyLongs.longs als bron in uw programma op te nemen, voegt u het toe aan een bronbestand met dezelfde stappen als hierboven beschreven, maar klikt u op de Aangepaste bron toevoegen ... in plaats van pictogram Toevoegen... Selecteer vervolgens het MyLongs.longs-bestand als het toe te voegen bestand. U moet ook het "Type" van de bron wijzigen door met de rechtermuisknop op die bron te klikken, "Eigenschappen" te selecteren en het Type te wijzigen in "longs". Merk op dat dit het bestandstype is van uw MyLongs.longs-bestand.

Om het door u gemaakte bronbestand te gebruiken om een ​​nieuwe array te maken, declareert u eerst de Win32 CopyMemory API-aanroep:

Lees dan het bronbestand:

Verplaats vervolgens de gegevens van de bytesarray naar een array met lange waarden. Wijs een array toe voor de lange waarden met behulp van de gehele waarde van de lengte van de reeks bytes gedeeld door 4 (dat wil zeggen 4 bytes per lange):

Dit lijkt misschien een heleboel problemen wanneer u de array gewoon kunt initialiseren in de Form Load-gebeurtenis, maar het laat wel zien hoe u een aangepaste bron kunt gebruiken. Als u een grote set constanten had waarmee u de array moest initialiseren, zou deze sneller werken dan alle andere andere methode die ik kan bedenken en u hoeft geen apart bestand bij uw toepassing te hebben om dit te doen het.

instagram story viewer