Delphi XMLDoc Viewer

Wie vor einiger Zeit bereits angekündigt (XML Documentation mit Delphi) habe ich meinen eigenen kleinen Viewer für Delphis XML-Dokumentation gebastelt (oder vielmehr bin ich noch dabei, aber den aktuellen Stand kann man schon als benutzbar bezeichnen). Hier ist er also, der Delphi XMLDoc Viewer in der Version 0.1.

Der Inhalt des Archivs sollte in ein Verzeichnis oberhalb (oder zumindest auf der gleichen Ebene) der Code-Verzeichnisse entpackt werden. Dies liegt daran, dass aktuelle Browser es nur erlauben Dateien zu öffnen, die in der Verzeichnisstruktur unterhalb der geöffneten HTML-Datei liegen (das betrifft nur das file://-„Protokoll“ und und soll den unerwünschten Zugriff auf Systemdateien verhindern).

Zum Anzeigen eines Projekts müssen unter Project der Pfad zur Projektdatei und die Projektdatei selbst angegeben werden. Der Pfad muss mittels file://… angegeben sein. Delphi erzeugt zwar eine Art Index-Datei aus dem Quelltext des Projekts, verwirft dabei aber alle Pfadangaben (zumindest Delphi 2007). Daher wird statt dessen die original dpr-Datei nach verwendeten Units gescannt.

Sind Pfad und Projektdatei angegeben wird das Projekt (hoffentlich) mit einem Klick auf Load project geladen.

In der linken Navigation werden dann unter Units alle in der dpr-Datei referenzierten Units augelistet und können per Klick angezeigt werden (sofern die entsprechende XML-Datei vorhanden und lesbar ist – ist die Datei nicht vorhanden passiert noch einfach gar nichts – die Fehlermeldungen müssen noch ausgebaut werden). Außerdem kann über das Eingabefeld Filter die Anzeige gefiltert werden.

Auf der rechten Seite wird dann die Dokumentation angezeigt (noch werden nicht alle möglichen Tags ausgewertet, aber die meisten) und auch der Sourcecode kann angezeigt werden (ein wenig Spielkram muss sein). Oben gibts Buttons zum ein- und ausklappen aller Elemente in der angezeigten Doku und den JQuery-UI Theme-Switcher (noch mehr Spielkram).

Projekt als Parameter übergeben

Das zu ladende Projekt kann übrigens auch als Parameter an die HTML-Datei übergeben werden. Damit ist es z.B. möglich, das Anzeigen der Doku in das Kontext-Menü für dpr-Dateien im Windows-Explorer einzufügen.

Das funktioniert über die Registry: Dazu muss ein neues Shell-Commando für den entsprechenden Dateityp (bei mir BDS.DprFile) angelegt werden, mit folgender Befehlszeile (Beispiel):

C:\Program Files (x86)\Mozilla Firefox\firefox.exe „file:///C:/delphi/doc.html?%1“

Der Aufruf muss direkt über die Exe des gewünschten Browser erfolgen, da bei einem generischen Aufruf des Standardbrowsers der Parameter abgeschnitten würde.

So viel fürs Erste, mehr vielleicht später.

Download Delphi XMLDoc Viewer: Delphi XMLDoc Viewer (1043)

9 thoughts on “Delphi XMLDoc Viewer”

  1. Jens says:

    Der erste Eindruck gefällt mir gut. Ich werde das Ganze in den nächsten Tagen noch etwas ausprobieren. Sind denn weitere Versionen geplant?

  2. Bjoern says:

    Grundsätzlich sind weitere Versionen insofern geplant, als dass ich den Viewer sicherlich so erweitern werde, wie ich es jeweils brauche. Habe aber ihn aber in letzter Zeit selbst eher selten benutzt.

    Aber Vorschläge und Verbesserungswünsche sind jederzeit willkommen und ich werde sie auch umsetzten, wenn ich die Zeit dazu finde. Ich denke mal das wichtigste wäre wahrscheinlich erst mal die Unterstützung möglichst aller XMLDoc-Tags (da fehlt noch ein wenig, wenn ich mich recht erinnere).

  3. Thomas says:

    Ich habe das Tool in der Vergangenheit gern genutzt. Vielen Dank dafür. Leider scheint es mit aktuellen Browser-Versionen Probleme zu geben (bspw. IE9). Gibt es dafür eine neuere Version oder wissen Sie, was anzupassen wäre?

  4. Bjoern says:

    Wie es der Zufall will habe ich gerade gestern auch mal wieder den Viewer verwenden wollen und bin auf genau das Problem gestoßen. Ich werde die Tage wahrscheinlich das ganze mal auf einen aktuelleren Stand bringen und die Probleme (hoffentlich) beseitigen.

  5. Bjoern says:

    Hab den Viewer inzwischen soweit, dass er auch wieder im IE9 funktioniert. Jetzt arbeite ich gerade noch an ein paar Verbesserungen. In den nächsten Tagen wird es also ein Update geben. Dazu dann mehr in einem neuen Post.

  6. Thomas says:

    Klingt super, na dann warte ich mal gespannt 🙂

  7. Bjoern says:

    Update ist online

  8. Thomas says:

    Danke, schaue ich mir die nächsten Tage gleich mal an.

  9. Christoph says:

    Super Tool.
    Bei der Generierung der XML-Dateien hatte ich meine Probleme. Bei der Verwendung von XE2 Professional (also nicht Enterprise) gibt es leider nicht den Menüpunkt „Tools -> Dokumentation genrieren“.
    Als Workaround kann man aber wie folgt vorgehen: Projektoptionen (Ctrl+Shift+F11) bei „Delphi-Compiler – Compilieren“ die Variable „XML-Dokumentation erzeugen“ auf true setzen, sowie bei „Delphi-Compiler – Ausgabe – C/C++“ die Variable „C/C++ .hpp-Ausgabeverzeichnis“ auf „.\“ setzen. Ansonsten werden die generierten .XML-Dateien im Verzeichnis „$(BDSCOMMONDIR)\Hpp“ abgelegt.
    Gruß, Christoph.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.