Die Community zu .NET und Classic VB.
Menü

AddIns für die VB IDE

 von 

Übersicht 

Zwar bietet die VB IDE im Vergleich zu anderen Entwicklungsumgebungen bereits einen beträchtlichen Funktionsumfang, aber früher oder später ärgert sich jeder Programmierer über das Fehlen einer bestimmten Funktion.

Die AddIn-Schnittstelle in Visual Basic bietet eine exzellente Möglichkeit, die Werkzeugpalette der IDE zu erweitern. Da man nicht alles selber programmieren kann, vertreiben diverse Websites solche Tools, die kleinere oder auch größere Jobs erledigen. Im Folgenden soll eine kleine Auswahl solcher Tools, vorwiegend Freeware, kurz vorgestellt werden.

Mit freundlichen Grüßen
Konrad Rudolph

AddIns in VB einfügen  

Um ein AddIn in VB zugänglich zu machen, muß man es registrieren und in VB einfügen. Ein AddIn liegt normalerweise als dll, manchmal auch als ActiveX-Exe vor. Unter VB6 erfolgt die VB-Registration automatisch, wenn man die Dll über RegSvr32.exe (per Kommandozeile) angemeldet wird. VB5 erwartet zudem einen Eintrag des AddIns in die Datei vbaddin.ini im Verzeichnis %SystemRoot%.

Um das AddIn in VB ansprechen zu können, muß es zusätzlich aktiviert werden, was über den Dialog im Menü Add-Ins=>Add-In Manager... geht. Hier kann man auch auswählen, ob das AddIn bei jedem Start von VB geladen werden soll.

Die meisten AddIns enthalten aber sowieso einen Setup, der diese Anmeldung für den User übernimmt, daher muß sich der User über die Registrierung keine Gedanken machen.

API Viewer 2002  

Der API Viewer ist das wohl meistbenutzte AddIn überhaupt. Kein Wunder, denn wenn man mit der Windows API programmiert, kommt man kaum um dieses Tool herum. Zwar stellt VB bereits ein solches Tool zur Verfügung, das im Vergleich zum API Viewer aber schlecht abschneidet. Letzterer bietet eine nahezu vollständige Datenbank der Windows- sowie WindowsCE-API Funktionen und der benötigten Konstanten und Strukturen (Types). Auf Klick sind nicht nur die gewünschten Funktionsdeklarationen, sondern auch die von ihnen benutzen Strukturen in das gewählte Modul eingefügt, ohne Umweg über die Zwischenablage. Die Optionen erlauben zusätzlich, die Deklarationen ordentlich zu formatieren sowie nach verschiedenen Kriterien zu sortieren.

Auch kann man den API Viewer durch PlugIns kompatibel zu anderen Sprachen, so zum Beispiel Visual Basic.NET oder Delphi machen, das proprietäre API-Dateiformat, das die Deklarationen speichert, macht's möglich und der API Viewer paßt die Syntax dementsprechend an.

Ein weiteres nützliches Werkzeug ist der Kompatibilitätstest, der prüft, ob ein gegebenes VB Projekt aufgrund inkompatibler API-Funktionen eventuell unter bestimmten Betriebssystemen nicht läuft.

Als kleines Extra arbeitet der API Viewer Hand in Hand mit dem Tool API Guide, das weitere Informationen sowie Beispiele zu den wichtigsten API Funktionen enthält. Einziger schwacher Punkt am API Viewer ist ein rein ästhetischer Aspekt: beim Übernehmen der Funktionen nach VB werden vor der Funktion oft mehrere Leerzeilen eingefügt, die dann per Hand entfernt werden müssen.

Weitere Informationen zu diesem von Christoph von Wittich programmierten AddIn finden Sie hier.

MZ-Tools  

MZ-Tools ist das Allround-Genie. Dieses AddIn ist eine umfangreiche Werkzeugsammlung, die sich von der zahlreichen Konkurrenz durch ihre Realitätsnähe hervorhebt: fast jede Funktion kann man gut gebrauchen. Zu den Highlights zählen zum Beispiel eine Aufgaben- ("ToDo-")liste wie sie aus VC++ bekannt ist und die zu jedem Projekt individuell Einträge speichern kann oder der Select Case-Assistent, der es erlaubt in Windeseile eine Select Case-Struktur für eine Enum-Variable zu erstellen. Besonders praktisch ist auch das Button, um sämtliche Codefenster zu schließen.

Weiterhin kann man sich nicht verwendete, aber deklarierte (= "tote") Variablen anzeigen lassen, nach sämtlichen Aufrufen einer bestimmten Prozedur suchen, zu Funktionen und Modulen Header oder Fehlerroutinen hinzufügen lassen und vieles mehr. Das AddIn stellt außerdem eine "private" Zwischenablage mit neun Slots, eine umfangreiche statistische Erfassung sowie eine automatisierte XML-Dokumentation für das aktuelle Projekt bereit. Dabei integriert sich das AddIn geschickt in die VB Kontextmenüs und die Funktionen sind immer schnell griffbereit. Sollte einmal eine Funktion wirklich fehlen, ist auch dies kein Beinbruch, denn das AddIn erlaubt es weiterhin, externe Programme als Toolbar-Icon in der IDE verfügbar zu machen.

Ein weiteres besonderes Schmankerl ist die Möglichkeit, eigene Hotkeys zuzuweisen. Auf diese Weise kann man z.B. die Suchfunktion von VB "überschreiben" und per Strg+F stattdessen den sehr viel besseren MZ-Tools Suchdialog aufrufen, per Tastendruck ganze Codeblöcke auskommentieren oder das Projekt zur Laufzeit speichern, etwas, das ansonsten überhaupt nicht möglich ist, aber durchaus praktisch sein kann. Zur Steuerung dieser gigantischen Sammlung bedient man sich ganz einfach der umfassenden Optionen.

Viele Nachteile hat dieses Tool nicht, höchstens, daß es eventuell überladen wirken kann, was sich aber durch die Optionen größtenteils ändern läßt. Allerdings ist der integrierte Codevorlagen-Manager nicht wirklich brauchbar, da andere Tools auf diesem Gebiet manchmal weit mehr leisten.

Eine vollständige Liste der Features befindet sich unter MZ-Tools - Features.

Programmierer von: Carlos J. Quintero
Download: http://www.mztools.com

PrettyCode.Print  

Wer Quelltexte drucken möchte, ist mit VB recht aufgeschmissen. Was da rauskommt ist ein an Fliegendreck schwarz-weiß Papier ohne jegliche Formatierung. Diesem Problem verschafft PrettyCode.Print Abhilfe. In einem Dialog kann man alle Funktionen selektieren, die gedruckt werden sollen. Diese werden dann farbig codiert und formatiert, desweiteren kann man Zeilennummern hinzufügen und durch Templates die Kopf- und Fußzeile formatieren sowie ein rudimentäres Titelblatt ausarbeiten. Codezeilen, die umgebrochen sind (also mit einem Unterstrich am Zeilenende), werden optisch durch ein Zeichen am Blattrand hervorgehoben, was der Übersicht sehr zuträglich ist. Codeblöcke sind jeweils durch einen senkrechten Strich am Zeilenanfang gekennzeichnet, der Blockanfang mit Blockende verbindet. Ein typischer Codeausdruck kann z.B. so aussehen:


Abbildung 1: Druckvorschau

Sowohl die Vorschau als auch der endgültige Druck liefern ein sehr gutes Ergebnis, allerdings sind die Optionen ein wenig konfus und der einstellbare Tabulatorenschritt wird nicht beachtet, wenn man die "Bracket Connection"-Option aktiviert hat (was normalerweise der Fall sein sollte). Eine andere ganz nette Funktion erlaubt außer dem Druck des Codes außerdem den Ausdruck einer Liste aller Funktionen, was recht praktisch sein kann.

Fazit: das Programm ist zum Drucken hilfreich, allerdings in einigen Funktionen durchaus verbesserungswürdig. - Trotzdem ist das Tool empfehlenswert.

Programmiert von: vbcity.com
Weitere Informationen und Download: http://www.vbcity.com

TweakVB  

Manchen reicht die Geschwindigkeit von VB nicht mehr immer aus. Was macht man in einem solchen Fall? Nun, meistens wird man wohl auf eine C-Dll zurückgreifen, die eventuell auch noch Inline-Assembler enthält. Mit TweakVB ist dieser Umweg unnötig geworden.

Während der Programmierung ansich spielt das AddIn keine Rolle, sein Einsatz kommt, sobald man das Projekt kompiliert. Das AddIn schneidet die Kommunikation zwischen Compiler und VB IDE mit und scannt seinerseits den Quelltext nach besonderen Textmarken, auf die es reagiert. Diese Textmarken sind ein fester Satz an Befehlen, die, um die VB-Syntaxüberprüfung nicht zu stören, in Kommentaren untergebracht sind.

Die Aufgaben, die TweakVB erfüllen kann, sind sehr verschieden, sie sind aber allesamt nicht mit VB allein zu bewerkstelligen, was das Tool sehr interessant macht. So kann das Tool z.B. Funktionen als API Dll-Funktionen exportieren, die Heapgröße beeinflussen, Compileroptionen ändern, Function Pointers ohne externe Dll ansprechen oder VB-Funktionen durch Inline-Assembler ersetzen. Das geht nun wirklich erstaunlich einfach. Folgende Sub ist ein Beispiel aus der sehr ausführlichen Dokumentation:

Public Sub Main()
   Dim l
   l = &H55003
   '$USEASM
   l = l \ (2 ^ 8)
   '$ASM
'   sub   ecx, ecx
'   mov   cl, 8
'   mov   eax, DWORD PTR _l$[ebp]
'   shr   eax, cl
'   mov   DWORD PTR _l$[ebp], eax
   '$ENDASM
   MsgBox "Value should be &h55" & vbCrLf &"Value is &h" & Hex$(l)
End Sub

Listing 1

Allerdings muß man bei der Verwendung dieses Tools sehr vorsichtig zu Werk gehen, selbst die kleinsten Fehler (auch solche, die man nicht unbedingt nachvollziehen kann), können zu einem Absturz der VB IDE führen - so hat z.B. auch das ASM-Beispiel von oben die IDE erst einmal gekippt, bevor es dann beim zweiten Versuch klappte. Dieses Tool ist für fortgeschrittene Programmierer mit Assembler-Kenntnissen eine wertvolle Hilfe, um zusätzliche Geschwindigkeit aus VB rauszukitzeln. Anfänger sollten von der Verwendung absehen.

Programmiert von: Darin Higgins
Download der Freeware-Version: http://www.tweakvb.com

Project Explorer +  

Dieses Tool ersetzt den VB-internen Projektexplorer, und zwar so gut wie vollständig. Hinzu kommt die schon von vielen Programmierern vermißte Funktion, daß auch Membervariablen und -Funktionen angezeigt werden. Sogar API-Deklarationen, Enums und Types bekommen ihren Platz. Das Tool kann in der IDE angedockt werden, genau wie der herkömmliche Codeexplorer. Bei einem Doppelklick auf ein bestimmtes Item wird man sofort an die Stelle innerhalb des Quellcodes "katapultiert". Dadurch beschleunigt das AddIn die Arbeit in VB wirklich, denn wenn man oft zwischen Codeabschnitten hin und her springt, spart man sich so viel Zeit. Außerdem gibt der Explorer eine sehr gute Übersicht über den Code:


Abbildung 2: Project Explorer +

Negativ an dem Tool ist eine bei größeren Projekten unerträglich lange Ladezeit und einige kleinere Bugs, durch welche das AddIn einige Deklarationen falsch erkennt und so zum Beispiel manche APIs zu den Methoden packt. Desweiteren ist es schade, daß das Tool als Kontextmenü ein eigenes Menü kreiert und nicht auf das VB Projektexplorer-Standardkontextmenü zurückgreift, denn letzteres läßt sich unter VB individuell anpassen und beherbergt zudem noch Funktionen aus anderen AddIns (z.B. integriert sich MZTools in das Kontextmenü des Explorers). Prinzipiell ist das Tool sehr empfehlenswert, ich selbst verwende es nur aufgrund des eigenen Kontextmenüs nicht, das ich nämlich brauche.

Der Project Explorer + ist leider nicht kostenlos, jedoch ist unter der unten angegebenen Adresse eine Testversion erhältlich, die dreißig Tage voll benutzt werden kann.

Programmiert von: Subzero Solutions
Download der Trialversion: http://www.subzero-solutions.com

VB Magic  

VB Magic ist ein anderer Codeexplorer, der ähnlich wie der Project Explorer + nicht nur die Dateien, sondern auch Members der Module darstellt. Positiv fällt auf, daß er gegensätzlich zum letzteren recht schnell läd und ganz Ungeduldigen sogar eine Ladeanzeige präsentiert. Zwar sind die einzelnen Elemente nicht so weit hierarchisiert wie beim Project Explorer +, was allerdings nicht sonderlich schlimm ist.

Zusätzlich zum Explorer beinhaltet das Tool noch eine erweiterte Suchfunktion und eine Statistik, die einem die Zahl an Codezeilen in einem Modul ausgibt. Leider ist jedoch auch hier das Kontextmenü ersetzt und kann so nicht angepaßt werden. Auch fallen die vielen überflüssigen Symbolleisten unangenehm auf: die dort vorhandenen Funktionen sind in andere AddIns einfach besser integriert. Zum Glück lassen sich die Leisten aber individuell ausblenden. Schade ist aber, daß die Leisten im Nirwana verschwinden, wenn der Platz nicht reicht, und nicht etwa aufklappbar sind oder in die nächste Zeile umgebrochen werden, wie dies normalerweise der Fall ist. Das ist auf dem Screenshot auf der rechten Seite sehr gut zu erkennen.


Abbildung 3: VB Magic Explorer

Programmiert von: DinkIT (vorher proIT)
Download der freien Version: http://ftp.funet.fi/pub/simtelnet/win95/visbasic/vbmagic.zip (vbasic.zip)

VB Advantage  

VB Advantage ist wohl kein AddIn mehr. Auch "Tool" trifft es nicht ganz. Vielmehr ist VB Advantage eine eigene Entwicklungsumgebung zur Erstellung von Makros, die das Leben in VB vereinfachen, also im Prinzip ein VB-AddIn-Studio. Einige hundert solcher Makros und Tools bringt VB Advantage schon selbst mit, angeordnet auf einer dockbaren Toolbar (natürlich werden nicht alle Tools gleichzeitig angezeigt, sondern nur die, die man gerade haben will).

Das Kernstück, der Codeeditor, beinhaltet zusätzlich zum Syntaxhighlighting auch den aus VB bekannten Formdesigner, Debugfunktionen, Objektkatalog und vieles mehr. Alles was fehlt, ist eine eigene AddIn-Interface. Mit zwei Worten: der Hammer!


Abbildung 4: VB Advantage Codeeditor

"Sowas irres kann es doch garnicht geben," habe ich mir beim ersten Anblick gesagt - stimmt leider. So toll das Tool ist, es hat einen gewaltigen Haken: das Ausführen der Makros klappt schlicht und ergreifend nicht. Bei einigen Makros passiert garnichts, bei anderen kommt eine Fehlermeldung und der Makroeditor zeigt auf eine defekte Zeile (aha! Der Debugger funktioniert also), die eigentlich funktionieren sollte. Aufgrund dieses Mankos kann ich nicht allzu viel über die Qualität des AddIns aussagen, ich empfehle es aber trotzdem jedem, sich die Testversion runterzuladen, nur für den Fall, daß der Fehler bei mir liegt und das Tool bei anderen läuft. Denn wenn es liefe, wäre es das absolute Ideal-AddIn.

Programmiert von: Advantageware
Download der Testversion: http://www.advantageware.com/VBAD_eval_downloads.htm (Die Zieladresse ist nicht mehr gültig)

Schlußbemerkung  

Die obige Auswahl an AddIns für die VB IDE ist zwar nur recht klein, aber dafür präsentiert sie die anscheinend meistbenutzten Fremd-AddIns (neben Microsofts Resourceneditor und dem Code Advisor). Umfragen zeigen, daß generell erstaunlich wenige AddIns verwendet werden, ich selbst kann die von mir regelmäßig benutzten AddIns an einer Hand abzählen. Trotzdem sollte sich jeder selbst eine Meinung bilden und sich zumindest die obengenannten Tools einmal anschauen. Jeder Programmierer hat eine vollkommen eigene Arbeitsweise und daher kann die VB IDE nur durch AddIns vernünftig zum Arbeiten gestaltet werden.

Ich hatte ursprünglich vor, auch noch andere AddIns zu testen, so zum Beispiel den c2i-Codeexplorer. Leider ist dieser aber trotz gegensätzlicher Angaben nicht Free-, sondern Trialware und alle drei Minuten oder so geht ein Fenster auf, das einen daran "erinnert", die Vollversion zu kaufen. Verständlich, aber durch diese Maßnahme ist das Tool leider vollkommen untestbar. eventuell ist die Vollversion wirklich gut, ich kann sie aus obengenanntem Grund leider nicht empfehlen.

Ihre Meinung  

Falls Sie Fragen zu diesem Tutorial haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.