Homepage: http://delphidoc.sourceforge.net/
Project-Page: http://sourceforge.net/projects/delphidoc/
Um DelphiDoc herunterzuladen bitte auf der
Projektseite
auf die
veröffentlichten
Dateien gehen.
Die deutsche Dokumentation wird nicht mehr aktiv gewartet.
Der Aufwand ist einfach zu groß geworden nach dem Aufsplitten
der Hilfe in mehrere Dateien.
Die hier erklärten Grundlagen dürften noch für die nächste Zeit
Gültigkeit haben, die neusten Features werden aber nicht mehr
hinzugefügt.
Vielleicht habe ich zu einem späteren Zeitpunkt wieder mehr Zeit
und eine neue Organisation und kann so zumindest diese allgemeine
Dokumentation wieder aufnehmen.
Um die Dokumentation auf Deutsch zu erzeugen, kann man im Hauptfenster im Tab "Localization" hinter "Use predefined Language" einfach "Deutsch" (oder "german" oder "de") auswählen.
DelphiDoc ist ein Programm zur automatischen Erstellung von Dokumentation über ein Delphi-Projekt. Dies geschieht momentan im HTML-, im Windows-Hilfe-Format (.hlp-Dateien), im LATEX-Format und im PDF-Format. Die neue HTML-Hilfe (.chm) ist ebenfalls verfügbar und ein Export zu XMI zum import in UML-Modelling-Tools ebenfalls. Außerdem können Diagramme erstellt werden.
Ich habe DelphiDoc geschrieben, um mein Vordiplomsprogramm zu dokumentieren, da es den Umfang einer vollkommenden Dokumentation per Hand doch etwas sprengte. Vorausgesetzt man will das ganze auch synchron halten und auch die Zeit zum Programmieren und nicht zum Dokumentieren nutzen.
Seine bedeutendsten Eigenschaften (auch in Bezug auf andere Programme,
die ebenfalls zum Kommentieren von Delphi-Programmen gedacht sind) sind
ein extensives Parsen des Quelltextes und eine Aufspaltung in Parser und
Dokumentationsgenerator. Aus dem Erstem folgt, daß sehr viele
Informationen gesammelt werden, die in die Dokumentation einfließen
können, was diese wertvoll machen kann, selbst wenn es keine Kommentare
gibt (sehr praktisch zum Einarbeiten in fremde Projekte, wenn man die
erzeugte Windows-Hilfe in die von Delphi integriert).
Das Zweite führt zu austauschbaren Dokumentationsgeneratoren. Momentan
kann zwischen verschiedenen Generatoren gewählt werden um die
Dokumentation in den oben erwähnten Formaten zu erzeugen.
Dieser Abschnitt ist recht einfach gehalten mit nur den grundlegendsten Funktionen. Für eine komplette und aktuellere Beschreibung muß ich hier leider auf die englische Dokumentation verweisen.
Um die Dokumentation zu erstellen, muß man als erstes das Projekt hinzufügen. Dies geht am einfachsten, in dem man die .dpr-Datei aus dem Explorer in das obere der Listenfenster zieht, und danach den Hacken neben den entstandenen Eintrag setzt. Danach muß man auf den Schalter Parse klicken, um die die Quellen zu parsen, und anschließend den Schalter Generate Documentation auf der vierten Lasche um die Dokumentation in das darunter angegebene Verzeichnis (dies wird automatisch angelegt, wenn noch nicht vorhanden) mit dem rechts angegebenen Hilfe-Generator zu generieren.
Der Schalter Compiler Options ist zum Einstellen der Compiler-Einstellungen gedacht, diese sind für die meisten Projekte nicht relevant. Die Einstellungen werden bei Projekten aus den zugehörigen .cfg-Dateien extrahiert, so das dieses Formular wirklich nur selten benötigt werden sollte. Die korrekte Delphi-Version muß aber u.U. mit dem nebenstehenden Eingabefeld ausgewählt werden.
Der Schalter Parse liest alle angegeben Dateien ein und parst sie untereinander. Nach dem Erstellen der interner Datenstrukturen über die Dateien kann dann weitergearbeitet werden, um z.B. die Dokumentation zu erstellen. Etwaige bereits geparste Daten werden verworfen, bevor erneut geparst wird. Der Schalter Manually bietet die Möglichkeit die zu parsenden Dateien nacheinander auszuwählen und jederzeit einzelne Dateien vom Parsen wieder auszuschließen. Projekte und ganze Verzeichnisse werden korrekt eingelesen und erkannt. Erst wenn die Auswahl beendet ist, werden alle Dateien zusammen komplett geparst.
Der Schalter Generate Documentation erzeugt die Dokumentation in dem unter Generator ausgewähltem Format des vorher geparsten Quellcodes in das in dem darunterliegendem Editierfeld angegebenen Verzeichnis. Im Editierfeld Name of Project kann der Name des Projektes angegeben werden, der in die generierte Dokumentation mit eingefügt wird.
Mit dem Schalter By Category zeigt alle Optionen des gewählten Generators an eingeordnet nach ihrer Kategorie. As List zeigt sie ähnlich dem Objektinspektor von Delphi als eine Liste zum Bearbeiten ab. Einige der eingestellten Werte können verloren gehen, wenn ein anderer Generator ausgewählt wird, der nicht die entsprechenden Optionen besitzt.
Falls die Dokumentation im Format HTML erfolgt, werden eine Menge
von HMTL-Dateien im angegebenen Verzeichnis erzeugt, die
Hauptdatei heißt index.html
. Außerdem werden ein paar
Xfig-Dateien (*.fig
) und WMF-Dateien (*.wmf
)
angelegt. Diese zeigen die Verhältnisse von Dateien und
Klassen/Schnittstellen untereinander an. XFig-Dateien enthalten Grafiken
im Vektor-Format, sind aber im Gegensatz zu WMF-Dateien als Text
gespeichert. Es stammt aus der Unix-Welt, es gibt aber
Programme zum Betrachten und
Bearbeiten der Dateien unter Windows. WMF-Dateien sollten z.B.
normalerweise in den meisten Office-Programmen einfügbar sein.
Falls die Dokumentation im Format WinHelp erzeugt wird, wird ein
Hilfe-Projekt samt einer RTF-Datei erzeugt, die sich zu einer
Windows-Hilfe-Datei kompilieren läßt. Dazu wird der Hilfe-Compiler von
Microsoft benötigt. Dieser kann kostenlos
heruntergeladen
werden bei Microsoft, er ist aber auch auf der Delphi-CD (oder anderen
SDKs) enthalten, und wird unter Umständen sogar installiert in das
Verzeichnis C:\Programme\Borland\Delphi4\Help\Tools
. Ist
dieser installiert und wurde einmal gestartet, ist die erstellte Datei
DelphiDoc.hpj
verknüpft und kann damit direkt geöffnet
werden.
Das Compilieren zu einer Hilfe-Datei kann dann durch
Save and Compile
oder nur durch Befehle zum Compilieren
gestartet und so die Datei DelphiDoc.hlp
erzeugt
werden. Über die Expert-Optionen kann dies auch automatisch erfolgen,
u.U. muß dazu der Pfad zum Hilfe-Compiler angegeben werden, es wird aber
versucht ihn auch ohne diese Angabe zu finden. Dazu wird geprüft, ob er
mit Delphi installiert wurde, ob die Datei des Hilfeprojektes verknüpft
ist oder ob der Compiler im Suchpfad zu finden ist.
Die entstandene Hilfe-Datei kann auch in die Hilfe von Delphi integriert
werden. Dazu muß das Programm OpenHelp
C:\Programme\Borland\Delphi4\Bin\oh.exe
aufgerufen werden,
dann das Projekt
C:\Programme\Borland\Delphi4\Help\delphi4.ohp
geöffnet
werden und nach dem Auswählen vom Tab Index die erzeugte
Hilfedatei einfach hinzugefügt werden. Nach dem Speichern sollte in
Delphi Hilfe zu den Bezeichnern des Projektes einfach per F1 abrufbar
sein, genauso, wie auch normalerweise zu den Bezeichnern von
Delphi.
Achtung: Bevor die Hilfedatei in Delphi integriert wird, sollte
sie umbenannt werden, da sonst das automatische Anzeigen der Hilfe nach
dem Erstellen in DelphiDoc nicht richtig funktioniert und die
integrierte Hilfedatei statt der frisch generierten angezeigt wird (per
Hand läßt sich die generierte Hilfedatei immer noch anzeigen). Scheinbar
werden die Hilfedateien über den Dateinamen gecached oder über einen
Suchpfad gesucht, weshalb mit gleichnamigen Dateien Probleme
auftreten.
Falls die Dokumentation im Format
LATEX
erfolgt, werden mehrere .tex-Dateien erzeugt.
TEX ist ein Textsatzsystem, das benutzt werden
kann, um die Dokumentation in vielen verschiedenen Formaten zu erzeugen.
Dies beinhaltet PostScript um es direkt zu drucken und PDF
(Portable
Document Format von Adobe) das
auf vielen Plattformen portabel angesehen werden kann mit Adobes
Acrobat
Reader.
Um die Dokumentation in diesen Formaten zu generieren wird natürlich das
LATEX-System
benötigt. Es kann kostenlos aus dem WorldWideWeb geladen werden, dafür
sollte man ein Blick auf folgende Seiten werfen:
die Deutschsprachige Anwendervereinigung
TeX e.V., the
Latex-Project, the (a)
TeX Users Group und the
the Comprehensive TeX Archive
Network.
Einfach latex mit der erzeugten Hauptdatei DelphiDoc.tex
starten. In ihr sind verschiedene Macros/Befehle definiert, die man
ändern kann oder u.U. auch muß.
Im Format PDF (Portable Document Format (Portierfähiges Dokumentformat), von Adobe) wird nur eine einzige PDF-Datei erstellt. Diese kann beispielsweise mit Adobes kostenlosen Acrobat Reader angezeigt oder gedruckt werden.
Mit Load und Save kann man die Einstellungen der zu dokumentierenden Projekte in Dateien speichern/aus sie lesen. Diese Dateien können auch direkt beim Programmstart als Parameter angegeben werden.
In den drein darunterliegenden TCheckListBoxen wird eingestellt, was geparst werden soll und was nicht. Die obere gibt alle Dateien und Verzeichnisse an, die/deren Inhalt geparst werden soll. Die mittlere gibt ensprechend alle Dateien/Verzeichnisse an, die nicht geparst werden sollen, auch wenn sie in der oberen indirekt enthalten sind. In der untersten können zusätzlich Bibliothekspfade/Suchpfade eingegeben werden; Dateien in diesen werden nur geparst, wenn sie von anderen geparsten verwendet werden.
Hat man also folgende Verzeichnisstruktur:
\a
und gibt in der oberen Liste
\a\b1
\a\b1\c1
\a\b1\c2
\a\b2\a
und \a\b1\c2
an, und in der unteren Liste \a\b1
, alle Einträge jeweils
mit Haken, werden alle Pascal-Dateien in a
, c2
und b2
geparst.
Mit dem Editfeld und den sechs Schaltern bearbeitet man diese drei Listen. Mit dem jeweils oberen Schalter wird der in dem Editfeld angegebene Pfad zu der entsprechenden Liste hinzugefügt, mit dem unteren entsprechend der in der Liste gewählte Eintrag wieder gelöscht.
Die Haken neben den Enträgen bedeuten rekursiv:
In der oberen Liste bedeutet ein Haken neben einem Verzeichnis, daß
auch alle Dateien in enthaltenen Verzeichnissen geparst werden
sollen. Ist es eine Datei bedeutet er, daß, sofern es sich um eine
Projekt-Datei handelt, auch alle benutzten Dateien, also die im Projekt
enthaltenen Dateien, ebenfalls geparst werden sollen.
In der unteren Liste gilt es bei Verzeichnissen entsprechend: Ist bei
ihnen kein Haken gesetzt, werden nur die Dateien direkt in dem
Verzeichnis ignoriert, sonst auch in untergeordneten Verzeichnissen. Bei
Dateien hat der Haken keine Auswirkungen.
Die Datei PreDefinedIdents.txt
enthält eine Liste von
vordefinierten Bezeichnern, sie ist bei weitem nicht vollständig. Alle
beim Parsen gefundenen unbekannten Bezeichner, die nicht in dieser Datei
stehen, werden aufgelistet.
Die Datei SystemIdents.txt
enthält die Liste der im
Compiler vordefinierten Bezeichner, die in der Unit System angenommen
werden, und die Datei SystemTypes.txt
entsprechende Typen.
Diese werden definiert, wenn man die Unit System parst, ansonsten sind
die Dateien belanglos.
Kommentare werden oberhalb von Bezeichnern erwartet und auf der gleichen Zeile. Dies ist die Hauptvoraussetzung für Kommentare. Kommentare müssen nicht besonders markiert werden (z.B. durch ein oder mehrere Sternchen "*") um verwendet zu werden. Falls beispielsweise eine Prozedur kommentiert wird, werden verschiedene Abschnitte erwartet, um z.B. die Parameter zu beschreiben. Werden diese nicht gefunden, wird zwar eine Warnung im Log erzeugt, die Dokumentation erfolgt aber trotzdem. Daher kann auch für nicht speziell für DelphiDoc kommentierte Projekte Dokumentation erzeugt werden. Die (korrekten) Kommentare werden aber nur verwendet, wenn sich diese an den oben genannten Stellen befinden. Aber selbst ohne sie kann Dokumentation erzeugt werden; durch die Verlinkung kann immer noch eine brauchbare Übersicht der Beziehungen der Bezeichner untereinander erzeugt werden.
Kommentare werden geparst, dazu werden sie als erstes in einzelne
Abschnitte eingeteilt. Das Zeichen "~" (die Tilde) stellt
dabei das Sonderzeichen dar. Abschnitte werden durch
~Abschnittsname
eingeleitet, momentan gibt es neben dem
Standardabschnitt am Anfang des Kommentars die Abschnitte:
deprecated, todo, feature, see, seeText, param, result, exception,
example, author, version
und page
.
Für das Sonderzeichen kann anstatt der Tilde auch ein anderes
eingestellt werden, ebenso können in den Optionen des Generators die
Namen der Abschnitte geändert werden und es stehen drei weitere frei
definierbare zur Verfügung.
Syntax:
Je nach Logik des zu kommentierenden Bezeichners werden diese Abschnitte
ausgewertet und in die Dokumentation des Bezeichners eingefügt. Dabei
wird "~~" als einfache Tilde behandelt (die Tilde wird also
mit sich selbst gequoted). "~[[" wird durch "[" und
"~[]" durch "]" ersetzt. "~[" drückt einen
Befehl aus. Mit
~[Befehl Param1 Param2 Und ein beliebiger Text auch mit anderen
Befehlen]
kann die entsprechende Klammer durch einen anderen Text ersetzt
werden.
~[insertText Doc_Text_Name]
. Der Text kann sich
ändern, abhängig vom Ort und Zeitpunkt wo er abgefragt
wird. Für eine Aufzählung der Namen siehe unten.~param
und ~result
-Abschnitt
möglich.~[preformatted ~[code Text]]
.~[linkPage Index Index of the Documentation] ~[linkPage 0 Link to first Page] ~[linkPage FirstPage Link to a Page called "FirstPage"] ~[linkPage ~[insertVariable ThisPageName] Link to this Page] ~[linkPage ~[insertVariable ThisPage] Link to this Page] ~[linkPage ~[add ~[insertVariable ThisPage] 1] Link to next the Page] ~[linkPage ~[add ~[insertVariable ThisPage] -1] Link to the previous Page]
~[insertText name]
zu nutzen:
THTMLDoc
",
"THTMLHelpDoc
",
"TWinHelpDoc
",
"TLaTeXDoc
" oder
"TPDFDoc
".~[insertVariable name]
zu nutzen:
~[link ~[insertVariable FileName] In dieser Datei]
erzeugt also (meistens) einen Link auf die Datei selber.unit, program, library
oder
package
.Nun ja, hier ist nichts besonderes. Das Programm wird wie-es-ist bereitgestellt, das heißt, es macht was es macht, und das ist hauptsächlich das Einlesen von Pascal Code und das Generieren von Dokumentation. Benutzung auf eigene Gefahr, auch wenn ich mir keinen Schaden vorstellen kann, den es anrichten könnte, außer dem Überschreiben von Dateien in dem Verzeichnis in dem die Dokumentation generiert werden soll. DelphiDoc wird nun unter der GPL veröffentlicht, entsprechend muß man sie anerkennen um das Programm nutzen zu können. Eine (rechtlich nicht anwendbare) Übersetzung auf Deutsch kann vielleicht hilfreich sein für das Verständnis.
Und noch eine Bemerkung zur generierten Dokumentation:
Die generierte Dokumentation erbt ihren rechtlichen Status von der
Quelle (dem Quellcode) von der sie generiert wurde, d.h. wenn man die
Software geschrieben hat und DelphiDoc generiert Dokumentation
darüber, hat man (der Autor der Software) auch das Urheberrecht an der
Dokumentation.
Zu Fragen und Anregungen usw. kann man mich in nächster Zeit noch
unter meiner FH-Email-Adresse erreichen, also unter
wi5337 @ fh-wedel.de
(bitte Adresse per Hand
zusammensetzen, ich möchte die Adresse nicht den automatischen
Suchmaschinen für Spam auf dem Silbertablett servieren). Ich habe nun
auch DelphiDoc @ gmx.de
registriert, so daß ich
auch darüber verfügbar bin. Es wäre aber wahrscheinlich besser direkt
die verschiedenen
SourceForge-Dienste zu nutzen.
DelphiDoc sollte die meisten korrekten und compilierfähigen
Programme korrekt parsen können, es gibt aber einige Konstrukte, die
Probleme verursachen könnten (es ist schon krank, was man alles in
Delphi hinschreiben kann, was dann korrekt compiliert wird). Es wird
in den meisten Fällen die Datei mit Zeilen- und Spaltennummer
ausgegeben, wenn ein Fehler beim Parsen auftreten sollte. Die meisten
dieser Konstrukte sollten allerdings kaum genutzt werden (nein, ich
meine nicht goto
damit, das sollte korrekt geparst
werden können).
Sollte ein Fehler auftreten, obwohl der zu parsende Quellcode korrekt ist, bitte ich darum, DelphiDoc erneut zu starten, und es noch einmal zu versuchen, um Folgefehler zu vermeiden, auch wenn die bei der aktuellen Version nicht mehr vorkommen sollte. Sollte der Fehler trotzdem auftreten, kann man mir mit der Fehlerbeschreibung und einem relevanten Auszug des Codes, oder bei komplizierteren Konstrukten auch des gesamten Projektes, eine entsprechende E-Mail zukommen lassen.
MfG Gerold Veith
Diese Seite wurde gefunden unter http://delphidoc.sourceforge.net/index_de.html.