So erstellen und verwenden Sie Ressourcen in Visual Basic 6
Jetta-Produktionen / Getty Images
Nachdem Visual Basic-Schüler alles über Schleifen und bedingte Anweisungen und Unterroutinen usw. gelernt haben, ist eine der nächsten Fragen, die sie oft stellen: „Wie füge ich eine Bitmap, eine WAV-Datei, einen benutzerdefinierten Cursor oder einen anderen Spezialeffekt hinzu? ' Eine Antwort ist Ressourcendateien . Wenn Sie eine Datei mithilfe von Visual Studio-Ressourcendateien hinzufügen, werden sie für maximale Ausführungsgeschwindigkeit und minimalen Aufwand direkt in Ihr Visual Basic-Projekt integriert Verpacken und Bereitstellen deinAnwendung.
Ressourcendateien sind sowohl in VB 6 als auch in VB.NET , aber die Art und Weise, wie sie verwendet werden, ist wie alles andere zwischen den beiden Systemen ziemlich unterschiedlich. Denken Sie daran, dass dies nicht die einzige Möglichkeit ist, Dateien in einem VB-Projekt zu verwenden, aber es hat echte Vorteile. Beispielsweise könnten Sie eine Bitmap in a einfügen Bilderkiste kontrollieren oder verwenden mciSendString Win32-API. „MCI“ ist ein Präfix, das normalerweise eine Multimedia-Befehlszeichenfolge angibt.
Erstellen einer Ressourcendatei in VB 6
Sie können die Ressourcen in einem Projekt sowohl in VB 6 als auch in VB.NET im sehen Projekt-Explorer Fenster (Solution Explorer in VB.NET – sie mussten es nur ein wenig anders machen). Ein neues Projekt wird keine haben, da Ressourcen kein Standardwerkzeug in VB 6 sind. Lassen Sie uns also eine einfache Ressource zu einem Projekt hinzufügen und sehen, wie das gemacht wird.
Schritt eins besteht darin, VB 6 zu starten, indem Sie a auswählen Standard-EXE Projekt auf der Neu Registerkarte im Startdialog. Wählen Sie nun die aus Add-Ins Option in der Menüleiste und dann die Add-In-Manager... Dadurch wird das Dialogfenster Add-In-Manager geöffnet.
Scrollen Sie in der Liste nach unten und suchen Sie VB 6-Ressourcen-Editor . Sie können einfach darauf doppelklicken oder ein Häkchen setzen Geladen/Entladen Box, um dieses Tool zu Ihrer VB 6-Umgebung hinzuzufügen. Wenn Sie glauben, dass Sie den Ressourcen-Editor häufig verwenden werden, können Sie auch ein Häkchen in das Kästchen setzen Beim Start laden und Sie müssen diesen Schritt in Zukunft nicht noch einmal durchlaufen. Klicken Sie auf „OK“ und der Ressourcen-Editor wird geöffnet. Sie sind bereit, Ressourcen zu Ihrem Projekt hinzuzufügen!
Gehen Sie zur Menüleiste und wählen Sie aus Projekt dann Neue Ressourcendatei hinzufügen oder klicken Sie einfach mit der rechten Maustaste in den Ressourcen-Editor und wählen Sie „Öffnen“ aus dem Kontextmenü, das sich öffnet. Ein Fenster wird geöffnet, in dem Sie nach dem Namen und Speicherort einer Ressourcendatei gefragt werden. Der Standardspeicherort wird wahrscheinlich nicht das sein, was Sie wollen, also navigieren Sie zu Ihrem Projektordner und geben Sie den Namen Ihrer neuen Ressourcendatei in die Dateiname Kasten. In diesem Artikel verwende ich für diese Datei den Namen „AboutVB.RES“. Sie müssen die Erstellung der Datei in einem Überprüfungsfenster bestätigen, und eine „AboutVB.RES“-Datei wird erstellt und in den Ressourcen-Editor eingetragen.
VB6-Unterstützung
VB6 unterstützt Folgendes:
- Ein String-Tabelleneditor
('String-Tabellen bearbeiten...') - Benutzerdefinierte Cursor - 'CUR'-Dateien
('Cursor hinzufügen...') - Benutzerdefinierte Symbole - 'ICO'-Dateien
('Symbol hinzufügen...') - Benutzerdefinierte Bitmaps - 'BMP'-Dateien
('Bitmap hinzufügen...') - Vom Programmierer definierte Ressourcen
('Benutzerdefinierte Ressource hinzufügen...')
VB 6 bietet einen einfachen Editor für Zeichenfolgen, aber für alle anderen Auswahlmöglichkeiten müssen Sie eine Datei in einem anderen Tool erstellen lassen. Sie könnten beispielsweise eine BMP-Datei mit dem einfachen Windows Paint-Programm erstellen.
Jede Ressource in der Ressourcendatei wird VB 6 durch ein identifiziert Ausweis und einen Namen im Ressourcen-Editor. Um Ihrem Programm eine Ressource zur Verfügung zu stellen, fügen Sie sie im Ressourcen-Editor hinzu und verwenden dann die ID und den Ressourcen-'Typ', um in Ihrem Programm darauf zu verweisen. Lassen Sie uns der Ressourcendatei vier Symbole hinzufügen und sie im Programm verwenden.
Wenn Sie eine Ressource hinzufügen, wird die eigentliche Datei selbst in Ihr Projekt kopiert. Visual Studio 6 bietet eine ganze Sammlung von Icons im Ordner...
C:ProgrammeMicrosoft Visual StudioCommonGraphicsIcons
Der Tradition entsprechend wählen wir die vier „Elemente“ des griechischen Philosophen Aristoteles – Erde, Wasser, Luft und Feuer – aus dem Unterverzeichnis „Elements“ aus. Wenn Sie sie hinzufügen, wird die ID automatisch von Visual Studio (101, 102, 103 und 104) zugewiesen.
Um die Symbole in einem Programm zu verwenden, verwenden wir eine VB 6-Funktion „Ressource laden“. Es stehen mehrere dieser Funktionen zur Auswahl:
Verwenden Sie die vordefinierten VB-Konstanten vbResBitmap für Bitmaps, vbResIcon für Ikonen und vbResCursor für Cursor für den 'Format'-Parameter. Diese Funktion gibt ein Bild zurück, das Sie direkt verwenden können. LoadResData (unten erklärt) gibt einen String zurück, der die tatsächlichen Bits in der Datei enthält. Wir werden sehen, wie man das verwendet, nachdem wir die Symbole demonstriert haben.
Wie bereits erwähnt, gibt diese Funktion einen String mit den tatsächlichen Bits in der Ressource zurück. Dies sind die Werte, die hier für Formatparameter verwendet werden können:
1 Cursor-Ressource
2 Bitmap-Ressource
3 Icon-Ressource
4 Menüressource
5 Dialogfeld
6 String-Ressource
7 Schriftartverzeichnisressource
8 Font-Ressource
9 Beschleunigertabelle
10 Benutzerdefinierte Ressource
12 Gruppencursor
14 Gruppensymbol
Da wir vier Symbole in unserer AboutVB.RES-Ressourcendatei haben, verwenden wir sie LoadResPicture(Index, Format) um diese der Picture-Eigenschaft eines CommandButton in VB 6 zuzuweisen.
Ich habe eine Anwendung mit vier erstellt Optionsschaltfläche Komponenten mit den Bezeichnungen Erde, Wasser, Luft und Feuer und vier Klick-Ereignisse – eines für jede Option. Dann fügte ich eine hinzu Befehlsschaltfläche und änderte die Style-Eigenschaft in „1 – Graphical“. Dies ist erforderlich, um der Befehlsschaltfläche ein benutzerdefiniertes Symbol hinzufügen zu können. Der Code für jeden OptionButton (und das Form Load-Ereignis – um es zu initialisieren) sieht folgendermaßen aus (mit entsprechend geänderter ID und Caption für die anderen OptionButton Click-Ereignisse):
Benutzerdefinierte Ressourcen
Das große Problem bei benutzerdefinierten Ressourcen ist, dass Sie normalerweise eine Möglichkeit bereitstellen müssen, sie in Ihrem Programmcode zu verarbeiten. Wie Microsoft heißt es: 'Dies erfordert normalerweise die Verwendung von Windows-API-Aufrufen.' Das werden wir tun.
Das Beispiel, das wir verwenden werden, ist eine schnelle Möglichkeit, ein Array mit einer Reihe konstanter Werte zu laden. Denken Sie daran, dass die Ressourcendatei in Ihrem Projekt enthalten ist. Wenn sich also die Werte ändern, die Sie laden müssen, müssen Sie einen traditionelleren Ansatz verwenden, z. B. eine sequentielle Datei, die Sie öffnen und lesen. Die von uns verwendete Windows-API ist die Speicher kopieren API. CopyMemory kopiert einen Speicherblock in einen anderen Speicherblock, ohne Rücksicht auf den dort gespeicherten Datentyp. Diese Technik ist VB 6-Anwendern als ultraschneller Weg zum Kopieren von Daten innerhalb eines Programms bekannt.
Dieses Programm ist etwas komplizierter, da wir zuerst eine Ressourcendatei erstellen müssen, die eine Reihe langer Werte enthält. Ich habe einfach einem Array Werte zugewiesen:
Dim longs(10) So lang
Länge(1) = 123456
Länge(2) = 654321
... und so weiter.
Dann können die Werte in eine Datei namens geschrieben werden MeineLongs.Longs mit der Anweisung 'Put' von VB 6.
Denken Sie daran, dass sich die Ressourcendatei nicht ändert, es sei denn, Sie löschen die alte und fügen eine neue hinzu. Bei dieser Technik müssten Sie also das Programm aktualisieren, um die Werte zu ändern. Um die Datei MyLongs.longs als Ressource in Ihr Programm aufzunehmen, fügen Sie sie mit denselben oben beschriebenen Schritten zu einer Ressourcendatei hinzu, klicken Sie jedoch auf die Benutzerdefinierte Ressource hinzufügen... statt Symbol hinzufügen... Wählen Sie dann die Datei MyLongs.longs als hinzuzufügende Datei aus. Sie müssen auch den „Typ“ der Ressource ändern, indem Sie mit der rechten Maustaste auf diese Ressource klicken, „Eigenschaften“ auswählen und den Typ in „Longs“ ändern. Beachten Sie, dass dies der Dateityp Ihrer MyLongs.longs-Datei ist.
Um die von Ihnen erstellte Ressourcendatei zum Erstellen eines neuen Arrays zu verwenden, deklarieren Sie zunächst den Win32-CopyMemory-API-Aufruf:
Lesen Sie dann die Ressourcendatei:
Verschieben Sie als Nächstes die Daten aus dem Bytes-Array in ein Array mit langen Werten. Ordnen Sie ein Array für die longs-Werte zu, indem Sie den ganzzahligen Wert der Länge der Bytefolge geteilt durch 4 verwenden (d. h. 4 Bytes pro Long):
Nun, dies mag wie eine ganze Menge Probleme erscheinen, wenn Sie das Array einfach im Form Load-Ereignis initialisieren könnten, aber es zeigt, wie Sie eine benutzerdefinierte Ressource verwenden. Wenn Sie eine große Menge von Konstanten hätten, mit denen Sie das Array initialisieren müssten, würde es schneller laufen als jede andere Methode, die ich mir vorstellen kann, und Sie müssten dafür keine separate Datei in Ihrer Anwendung enthalten.