twinBASIC: Grundlagen zur App-Entwicklung

VB6-Anwendungen – braucht das noch jemand? Oh ja! Gerade wer mal eben schnell eine Windows-Anwendung mit einer Benutzeroberfläche (oder auch ohne) programmieren will, kann immer noch gut auf seine guten, alten Visual Basic 6-Kenntnisse zurückgreifen – und zwar mit dem Nachfolger twinBASIC. In diesem Magazin haben wir schon die eine oder andere Lösung damit programmiert, die wir als COM-Add-In oder als COM-DLL für die Integration in eine der Office-Anwendungen oder auch zur Erweiterung von VBA genutzt haben. Und in diesem Artikel gehen wir noch einen Schritt weiter: Wir zeigen die grundlegenden Werkzeuge von twinBASIC zur Entwicklung von ausführbare twinBASIC-Anwendung mit eigener Benutzeroberfläche. Mit twinBASIC können wir unsere .exe-Anwendung in Zukunft vielleicht sogar auf Nicht-Windows-Rechnern laufen lassen. Zumindest aber ist die Kompatibilität mit 64-Bit-Systemen gesichert.

VB6 im modernen Zeitalter: Ein Relikt mit Wert

Visual Basic 6 (VB6) mag auf den ersten Blick wie ein Überbleibsel aus der Technologie-Vergangenheit erscheinen, doch die Realität ist, dass diese robuste Programmiersprache immer noch ihren festen Platz in der Software-Entwicklung hat. Erstens ist die Migration von alten VB6-Anwendungen auf neuere Technologien oft ein zeitaufwändiger und kostspieliger Prozess, den viele Unternehmen scheuen. Daher bleiben VB6-Programme in Betrieb und erfordern weiterhin Wartung und Support.

Zweitens bietet VB6 eine vertraute Umgebung für Entwickler, die über Jahrzehnte hinweg mit der Sprache gearbeitet haben, und ermöglicht eine schnelle und effiziente Anwendungsentwicklung. Auch wenn VB6 nicht die neuesten Funktionen oder Sprachkonstrukte bietet, bleibt seine Einfachheit und Effizienz in vielen Kontexten unübertroffen. Es ist ein klares Beispiel dafür, dass es nicht immer das Neueste und Beste sein muss, um relevant und wertvoll in der IT-Landschaft zu bleiben.

twinBASIC als Entwicklungsumgebung

Neu sind der Compiler und die Entwicklungsumgebung, die wir in diesem Fall nutzen. Leser unseres Magazins kennen twinBASIC bereits aus verschiedenen Veröffentlichungen, daher empfiehlt sich für den Einstieg ein Blick in das Onlinearchiv von https://www.vbentwickler.de mit einer Suche nach dem Begriff twinBASIC. twinBASIC ist zumindest für die Entwicklung mit der 32-Bit-Variante kostenlos, bei Entwicklung von 64-Bit-Apps werden bei Verwendung der kostenlosen Variante Splash-Screens eingeblendet. Die 64-Bit-Version ohne Splash-Screens erfordert den Kauf der Professional-Lizenz (siehe https://shop.minhorst.com/access-tools/364/twinbasic-professional-edition-jahreslizenz?c=78).

Neues Projekt erstellen

Nach dem Start von twinBASIC wählen wir aus den Vorlagen den Eintrag Standard Exe aus (siehe Bild 1). Das Ergebnis ist ein neues Projekt, das lediglich ein leeres Fenster enthält. Dieses besteht wiederum aus zwei Elementen: der eigentlichen Benutzeroberfläche (Forms1.tbform) und dem Code behind-Klassenmodul (Form1.twin).

Erstellen einer Standard-Exe

Bild 1: Erstellen einer Standard-Exe

Beides sehen wir im Project Explorer von twinBASIC, in der Mitte wird direkt der Entwurf des neuen Fensters dargestellt (siehe Bild 2).

Ein neues Projekt des Typs Standard Exe

Bild 2: Ein neues Projekt des Typs Standard Exe

Erster Start des Projekts

Mit einem Klick auf die Ausführen-Schaltfläche in der Symbolleiste von twinBASIC können wir das Projekt direkt ausprobieren. Damit zeigen wir das leere Fenster des Projekts an (siehe Bild 3).

Das noch leere Hauptfenster der Anwendung

Bild 3: Das noch leere Hauptfenster der Anwendung

Umbenennen der Objekte

Bevor wir das Projekt erstmals speichern, wollen wir die bisher vorhanden Objekte umbenennen. So soll das einzige bisher vorhandene Form-Objekt in frmMain umbenannt werden. Dazu schließen wir dieses Objekt und auch die dazugehörige Code behind-Klasse, sofern diese aktuell geöffnet sind. Zum Umbenennen verwenden wir den Kontextmenü-Eintrag Rename und legen die Bezeichnungen frmMain.tbform und frmMain.twin fest. Dies waren jedoch nur die Dateinamen. Außerdem ändern wir noch die entsprechenden Klassennamen. Die für das Fenster ändern wir im Eigenschaftsbereich. Hier stellen wir die Eigenschaft Name auf frmMain ein (siehe Bild 4).

Umbenennen der Form-Klasse

Bild 4: Umbenennen der Form-Klasse

Für die Code behind-Klasse nehmen wir die Änderungen direkt im Code vor (siehe Bild 5).

Umbenennen der Code behind-Klasse

Bild 5: Umbenennen der Code behind-Klasse

Woher weiß die Code behind-Klasse, dass sie zu dem entsprechenden Form-Element gehört? Dies wird durch eine GUID festgelegt, die wir in beiden Fällen in der Eigenschaft FormDesignerId finden.

Umbenennen, schnelle Version

Dieser Umbenennungsprozess ist nur bei der standardmäßig vorhandenen Form nötig. Wenn wir über den Kontextmenüeintrag Add|Add Form Windows Form des Eintrags Sources im Projektexplorer ein neues Form-Objekt hinzufügen, haben wir direkt nach dem Anlegen die Möglichkeit, dieses umzubenennen (siehe Bild 6).

Umbenennen des Form-Elements

Bild 6: Umbenennen des Form-Elements

Geben wir hier einen Namen wie im Beispiel frmSample an, wird auch gleich die Code behind-Klasse umbenannt. Außerdem wird beim Form-Objekt der Objektname auf frmSample eingestellt und auch der Klassenname in der Datei frmSample.twin.

Wenn Du also beim Start das vorhandene Form-Element Form1 umbenennen möchtest, löscht Du es am besten direkt und erstellst ein neues Form-Element mit dem gewünschten Namen.

Startup-Form festlegen

Damit haben wir nun Änderungen durchgeführt, die sich auf den Start des Projekts auswirken. Beim ersten Test wurde nämlich das Form-Objekt Form1 geöffnet. Dieses ist nun nicht mehr vorhanden, also müssen wir angegeben, dass das nun in frmMain umbenannte Fenster geöffnet werden soll. Das erledigen wir in den Settings, die wir über den gleichnamigen Eintrag im Projektexplorer öffnen.

Hier finden wir etwas weiter unten den Bereich Project: Startup Object. Hier wählen wir wie in Bild 7 den Eintrag frmMain aus.

Einstellen des bei Start anzuzeigenden Form-Objekts

Bild 7: Einstellen des bei Start anzuzeigenden Form-Objekts

Alternativ können wir auch Sub Main auswählen. In diesem Fall müssten wir eine Prozedur namens Main bereitstellen, die beim Start aufgerufen wird. Dies eröffnet die Möglichkeit, vor dem Anzeigen des ersten Fensters bereits einige Anweisungen auszuführen. Wie das gelingt, zeigen wir im Artikel twinBASIC: Forms öffnen, schließen und mehr (www.vbentwickler.de/389).

Weitere Projekteinstellungen

Im gleichen Dialog finden wir weiter oben noch weitere wichtige Einstellungen, zum Beispiel den Projektnamen, eine Beschreibung und den Anwendungstitel (siehe Bild 8). Der Wert unter Project:Name wird nicht angezeigt, sondern dient zum Beispiel folgenden Zwecken:

Einstellen weiterer Projekteigenschaften

Bild 8: Einstellen weiterer Projekteigenschaften

  • Namensraum: Der Projektname dient als Teil des Namensraums für die in unserem Projekt erstellten Klassen und Formulare. Dies hilft dabei, Konflikte mit gleichnamigen Klassen oder Formularen in anderen Projekten zu vermeiden.
  • Referenzen: Der Projektname wird in Referenzen und Verweisen auf Projekte und Bibliotheken innerhalb unseres VB6-Projekts verwendet. Wenn wir auf externe COM-Komponenten oder DLLs zugreifen, können wir den Projektname verwenden, um diese zu identifizieren und auf sie zuzugreifen.

Der Wert unter Project: Description wird angezeigt, wenn wir eine Typbibliothek, also eine DLL, auf Basis dieses Projekts erstellen und dieses referenzieren.

Da wir das nicht tun, können wir hier einen beliebigen Wert eintragen.

Der Wert unter Project: Application Titel hat folgende Funktionen:

  • Standardbeschriftung für MsgBox und InputBox-Objekte, für die wir keinen eigenen Titel festgelegt haben.
  • Wert, der für die Eigenschaft App.Title zurückgegeben wird.

Die hier durchgeführten Änderungen wirken sich erst aus, wenn wir das Projekt gespeichert haben (was wir gleich im Anschluss erledigen) und den Compiler neu gestartet haben. Letzteres können wir durchführen, indem wir wie in Bild 9 auf die Schaltfläche Restart the compiler klicken.

Schaltfläche zum Neustarten des Compilers

Bild 9: Schaltfläche zum Neustarten des Compilers

Speichern des Projekts

Damit haben wir einen ersten Zwischenstand erreicht und speichern diesen mit File|Save project unter dem Namen Sampleproject.twinproj. Hier sehen wir direkt, dass genau eine einzige Datei für ein twinBASIC-Projekt angelegt wird.

Starten des Projekts

Damit können wir das Projekt nun erstmals starten. Die dazu notwendigen Schaltflächen finden wir in der Symbolleiste im mittleren Bereich (siehe Bild 10).

Die Schaltflächen zum Starten von Programmen und mehr

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Visual Basic Entwickler:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 200 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar