www.ewlab.de
Delphi 2006
Delphi 2005
Kylix
Delphi 6
Delphi 5
Delphi 4
Impressum
TreeDesigner
Experten
Korrekturen
TreeDesigner 3.0

Kurzbeschreibung zum TreeDesigner

Der TreeDesigner ist ein Grafikprogramm, in dem Sie mit einfachen grafischen Formen wie Linien, Rechtecke, Ellipsen und mit spezielleren Formen arbeiten, die jeweils mit einem zentrierten Text beschriftet werden können. Zwischen einzelnen Objekten können Sie Verbindungen definieren, die automatisch gezeichnet werden. Die Arbeitsfläche des TreeDesigners ist ein Zeichenblatt, das per Voreinstellung eine quadratische Form hat, die mit 3000*3000 Pixeln weit über den Bildschirm hinausgeht und daher innerhalb des Fensters gescrollt werden kann.

 (Zum Vergrößern bitte anklicken)

Da der TreeDesigner als normale Grafikanwendung kaum mit kommerziellen Paketen konkurrieren kann, werden einige spezielle Funktionen eingebaut, die ihre Benutzung dennoch lohnend machen. So können Sie zwischen den grafischen Objekten Verbindungen definieren, die vom Programm automatisch durch Verbindungslinien dargestellt werden. Gegenüber handgezeichneten Verbindungslinien gibt es mehrere Vorteile:

  • Wenn Sie ein Objekt verschieben, wird die Verbindung automatisch angepaßt,
  • oder alle verbundenen Objekte werden ebenfalls verschoben.
  • Eine so verbundene Struktur kann vom Programm als Baum interpretiert werden,
  • der mit etwas zusätzlichem Code sogar automatisch erzeugt werden kann.

Außer auf der Zeichenfläche werden alle Grafikelemente des aktuellen Dokuments auch noch in einem TreeView dargestellt (im Bild rechts unten), das Ihnen die Navigation innerhalb einer größeren Grafik erleichtert.

 (Zum Vergrößern bitte anklicken)

Anzeige von Klassenhierarchien

[Für die Anzeige von Klassenhierarchien in der Linux-Version 3.5 siehe hier]

Insbesondere die Fähigkeit der automatischen Baumerzeugung ist für Delphi-Programmierer interessant, da durch sie eine Alternative zu der Hierarchiedarstellung des in Delphi integrierten Browsers entsteht: Während die Wurzel des Hierarchiebaumes in diesem ganz oben steht und alle weiteren Klassen nur untereinander (mit etwas Einrückung versehen) angeordnet sind, läßt sich die grafische Baumdarstellung innerhalb des Grafikprogramms vielfältig ändern, zurechtrücken, farbig markieren und auf diese Weise übersichtlicher gestalten und sogar ausdrucken.

Lieferant für die Daten der Klassenhierarchie ist das auf der CD mitgelieferte Programm Itéa. Um die Klassenhierarchie-Grafik für ein bestimmtes Delphi-Projekt aufzubauen, führen Sie grob gesehen die folgenden Schritte aus:

  • Starten Sie Itéa und lesen Sie dort das Projekt ein, dessen Klassenhierarchie Sie sehen wollen. Genaueres hierzu lesen Sie bitte in Kapitel 5.1.5 nach.
  • Wählen Sie in Itéa den Menüpunkt Browser | Klassenhierarchie -> Zwischenablage und anschließend im TreeDesigner den Menüpunkt Bearbeiten | Klassenhierarchie einfügen oder die entsprechenden Aktionsschalter.

Auf diese Weise werden die Klasseninformationen über die Zwischenablage an den TreeDesigner übertragen, der für jede Klasse ein Grafikobjekt erzeugt. Nach der Übertragung ordnet der TreeDesigner die Grafik automatisch zu einem Baum an.

Hier noch einmal das im vorigen Bild gezeigte Dokument, diesmal mit einer größeren Ansicht:

 (Zum Vergrößern bitte anklicken)

Den letzten Schritt können Sie jederzeit per Hand wiederholen, indem Sie den gewünschten Wurzelknoten markieren (z. B. über einen Doppelklick auf den Knotennamen im TreeExplorer) und dann den Anordnen-Befehl ausführen. Wenn Sie sich für einen anderen Knoten als TObject entscheiden, erhalten Sie einen möglicherweise sehr übersichtlichen Teilbaum aus der Klassenhierarchie. Natürlich können Sie auf dieselbe Weise auch von der VCL unabhängige, selbst erstellte Baumstrukturen anordnen.

Hinweis: Die CD-ROM enthält bereits eine fertige TreeDesigner-tvf-Datei mit der Grafik der VCL-Hierarchie. Diese können Sie im TreeDesigner mit Datei | Öffnen... ohne Zuhilfenahme von Itéa laden.

 

 

Unterschiede zu Vorgängerversionen

[Neuerungen der aktuellen Version 3.5 des TreeDesigners siehe hier]

Falls Sie eines der Vorgängerbücher mit einer älteren TreeDesigner-Version besitzen, werden Sie sich möglicherweise für die Unterschiede zwischen den Versionen interessieren:

  • Die Version 3.0 enthält folgende Erweiterungen: Ein neues Hilfsfenster gibt eine Übersicht über das aktuelle Dokument und zeigt, welcher Ausschnitt gerade im Dokumentfenster sichtbar ist. Der TreeDesigner realisiert nun das Dokument-View-Konzept, erlaubt also die Bearbeitung eines Dokuments in mehreren gleichzeitig geöffneten Dokumentfenstern. Außerdem wurden die Lineale optimiert, die Handhabung des TreeExplorers verbessert und einfache Einstellungsdialoge für die einzelnen Grafikobjekte (aufrufbar aus dem Popup-Menü) hinzugefügt. Kleinere Verbesserungen zeigen sich unter anderem in der Darstellung des Zeichenblatts (mit Rand und Schatten) und in der Schriftauswahlliste (mit Schrift-Vorschau). Die Erweiterung der COM-Automations-Schnittstelle durch die Interfaces ITreeDesigner3 und ITreeDesigner3Events dient den Beispielen in Kapitel 8.8.
  • Neu in der Version 2.5 waren unter anderem der TreeExplorer (ein TreeView mit allen Grafikelementen des aktuellen Dokuments), die Möglichkeit, neben Text auch Grafikdateien (Bitmaps oder Metadateien) in einzelne Grafikelemente einzublenden, und die Griffe, mit denen Sie Grafikobjekte wie vom Formularentwurf in der Delphi IDE bekannt in der Größe ändern können.
  • Zu den Neuigkeiten der Version 2.0 gehörten: flexible Einstellungsmöglichkeiten für den Ausdruck, ein Druckdialog mit Druckvorschau, der Export von Metadateien über die Zwischenablage, eine Funktion zum Skalieren der Grafik und kleinere Verbesserungen wie z. B. ein leichteres Zoomen zwischen Faktor 0,1 und 1.

Mausaktionen

Zum Zeichnen von neuen Objekten wählen Sie aus der Werkzeugleiste den Schalter mit der gewünschten grafischen Form aus und zeichnen das Objekt mit der Maus auf die Arbeitsfläche ein. Solange der entsprechende Schalter in der Werkzeugleiste gedrückt ist, können Sie nur neue Objekte einzeichnen, aber keine bestehenden Objekte verändern. Diesen Zeichenmodus können Sie auch daran erkennen, daß der Mauszeiger die Form eines Fadenkreuzes angenommen hat.

Wenn Sie in der Werkzeugleiste den Schalter mit dem Mauszeigersymbol wählen, werden keine neuen Objekte gezeichnet, sondern Sie können die bestehenden Objekte manipulieren:

  • Zum Verschieben ziehen Sie das Objekt einfach mit der Maus an seinen neuen Ort.
  • Zum Markieren klicken Sie es mit der Maus an, zusammen mit #Shift# können Sie mehrere Objekte auswählen.
  • Um einen Bereich von Objekten zu markieren, zeichnen Sie mit der Maus ein Rechteck um die zu markierenden Objekte. Sie dürfen die Maus dazu jedoch nicht über einem Objekt drücken, da Sie dieses sonst verschieben.
  • Um die Größe eines markierten Objekts zu verändern, gehen Sie so vor wie beim Verändern der Größe von Komponenten im Formulareditor der Delphi-IDE: Ziehen Sie an einem der »Griffe«, die im Rahmen des Objekts gezeichnet werden.
  • Um Objekte miteinander zu verbinden, markieren Sie einige »Zielobjekte« und klicken, während Sie #Strg# halten, auf das Objekt, von dem die Linien zu den Zielobjekten ausgehen sollen (mehr über diese Funktion können Sie in Kapitel 5.3.4 lesen).
  • Um ein Objekt zu verschieben, ohne daß der gesamte von diesem Objekt ausgehende Teilbaum ebenfalls verschoben wird, drücken Sie #Shift#, bevor Sie mit dem Verschieben beginnen.

Tastaturaktionen

Unabhängig von der Einstellung des Zeichenwerkzeugs können Sie zwei Tastaturbefehle einsetzen (sofern der Eingabefokus sich nicht in einem Eingabeelement der Symbolleisten befindet):

  • Um Objekte zu löschen, markieren Sie sie und drücken #Entf#.
  • Um das oberste Grafikelement hinter alle anderen Elemente zu verschieben, drücken Sie #PgDn#. Diese Funktion können Sie auch dazu verwenden, durch alle vorhandenen Grafikelemente zu blättern, denn der TreeDesigner rückt das neue oberste Element automatisch in den sichtbaren Fensterbereich.

Editieren der Attribute

Sie können bei jedem Objekt die folgenden Attribute verändern: Linien-, Füll- und Schriftfarbe, Schriftart- und größe, die Form des Objekts sowie den Beschriftungstext.

Alle Attribute können Sie über die Symbolleisten wie folgt einstellen: Markieren Sie zuerst die Objekte, die Sie verändern wollen, und stellen Sie dann die Attribute ein:

  • Geben Sie einen Beschriftungstext in das Editierfeld ein.
  • Wählen Sie eine Schriftart aus der aufklappbaren Liste aus.
  • Und geben Sie neben dieser Listbox die Größe der Schrift ein. Über die beiden zusätzlichen Schalter können Sie auch Fett- und Kursivschrift einstellen.
  • Um die Dicke der Linien zu verändern, verschieben Sie den Regler am unteren Ende der vertikalen Werkzeugleiste.
  • Um die Form der gewählten Objekte zu ändern, doppelklicken Sie auf den Schalter für die neue Form.

Für die Farben stellt der TreeDesigner eine Farbpalette zur Verfügung, in der drei Farben markiert sind (siehe Bild 5.2):

  • Die mit einer Linie markierte Farbe wird zum Zeichnen der Linie verwendet (markieren Sie diese Farbe mit der linken Maustaste).
  • Die Farbe, die mit einem Kreis versehen ist, findet sich zum Füllen des Objekts wieder (Markieren mit rechter Maustaste).
  • Und die Farbe mit der »T«-Markierung liefert die Farbe für die Beschriftung (Markieren mit #Shift#+linker Maustaste).

Die Füllungsfarbe der Objekte können Sie auch per Drag&Drop ändern, indem Sie die gewünschte Farbe mit der linken Maustaste auf das Objekt ziehen (dabei sollten keine Objekte markiert sein, da sonst deren Linienfarbe geändert würde).

Die Koordinaten eines Elements können Sie auch dialoggesteuert einstellen, wenn Sie das Element mit der rechten Maustaste anklicken und den Popup-Menüpunkt Attribute... ausführen (es werden dann nur die Attribute des angeklickten Elements geändert, auch wenn ein anderes Element markiert sein sollte).

Alle Einstellungen in den Symbolleisten werden auch zum Zeichnen eines neuen Objekts verwendet, mit Ausnahme des Beschriftungstextes, der nach einmaliger Verwendung wieder gelöscht wird (allerdings können Sie mehrere Objekte markieren und deren Beschriftung gleichzeitig verändern).

Unter dem Regler für die Linienstärke befindet sich außerdem ein kleines Vorschaufeld, in dem Sie aktuelle Hintergrundfarbe, Linienfarbe und Linienbreite erkennen können.

Standardaktionen

Der TreeDesigner verfügt natürlich über die üblichen von MDI-Anwendungen gewohnten Merkmale wie die Funktionen des Fenstermenüs, das Speichern und Laden von Dateien (das Format der vom TreeDesigner erzeugten Dateien wird durch die Endung .tvf gekennzeichnet) und mittlerweile auch über die typischen Zwischenablageoperationen Bearbeiten | Ausschneiden, Bearbeiten | Kopieren und Bearbeiten | Einfügen. Ausschneiden und Kopieren beziehen sich dabei jeweils auf alle im aktuellen Dokument markierten Objekte.

Auch für diese Zwischenablage-Operationen verwendet der TreeDesigner sein eigenes Format, das heißt, Sie können aus dem TreeDesigner kopierte Objekte nicht in anderen Anwendungen einfügen und umgekehrt keine Objekte aus anderen Anwendungen in den TreeDesigner übernehmen – zumindest nicht über dieses Menü. Innerhalb eines einzelnen TreeDesigner-Grafikelements können Sie jedoch wie folgt Grafiken aus anderen Quellen anzeigen.

Anzeige von Grafiken innerhalb der Objekte

Im Popup-Menü der einzelnen Grafikelemente finden Sie drei gegenüber der Version 2.0 neu hinzugekommene Punkte:

  • Grafik aus Datei laden... öffnet einen TOpenPictureDialog zur Auswahl einer Grafikdatei, deren Inhalt daraufhin im Grafikelement angezeigt wird.
  • Grafik aus Zwischenablage einfügen fügt den Grafikinhalt der Zwischenablage in das aktuelle Grafikelement ein.
  • Inhalt löschen stellt den Ursprungszustand des Grafikelements wieder her, eine eventuell mit den beiden vorher genannten Funktionen eingefügte Grafik wird also gelöscht.

Da zur Verwaltung der Grafik ein TPicture-Objekt verwendet wird, können Sie alle Grafikdateien laden, die mit TPicture kompatibel sind. Durch jedes Einfügen eines neuen Elementinhalts wird der bisherige Inhalt gelöscht. Die Grafik wird per StretchDraw gezeichnet und füllt die rechteckigen Umrisse eines Grafikelements immer voll aus, dabei findet auch bei nicht-rechteckigen Elementen kein Clipping statt. Beim Speichern des Dokuments wird die Grafik über TPicture.SaveToStream in die tvf-Datei geschrieben, wird also zu einem fest integrierten Bestandteil des TreeDesigner-Dokuments.

Diese Funktionen sind hauptsächlich zur Demonstration gedacht, wie durch relativ kleine Erweiterungen am Programmcode andere Inhalte innerhalb der einzelnen Grafikelemente angezeigt werden können. Die Implementierung dieser Funktionen kann hier aus Platzgründen nicht erläutert werden, aber sie wurde über eine eigene Unit namens GrCont mit der Absicht entworfen, leicht nachvollziehbar und auf andere Typen von Grafiken erweiterbar zu sein.

Ansichtsarten und Drucken

Über den Regler in der Mauspalette können Sie die Vergrößerung, mit der die Grafik angezeigt wird, zwischen 0,1 und 10 einstellen. Dabei versucht der TreeDesigner, je nach Zoom-Modus den derzeitigen Mittelpunkt oder die markierten Objekte auch nach der Vergrößerung/Verkleinerung zentriert darzustellen.

Der Druckdialog läßt Ihnen die Wahl zwischen zwei verschiedenen Druck-Modi:

  • Im Modus 1 Einheit = 0,1 mm wird der gesamte Bereich des Arbeitsblatts gedruckt. Mit dem Menübefehl Ansicht | Seitenanzeige können Sie das Arbeitsblatt auf die zur Zeit im Druckertreiber gewählte Seitengröße »zurechtschneiden«. Um es ungefähr in der Größe des Drucks auf dem Bildschirm zu sehen, müssen Sie beispielsweise bei 17-Zoll-Monitoren den Vergrößerungsfaktor 0,2 einstellen.
  • Im Modus Druckgröße anpassen können Sie den Ausdruck frei auf der Seite positionieren und skalieren. Siehe hierzu Kapitel 5.6.4.

Hinweis: Beachten Sie auch die Funktion Bearbeiten | Kopieren, mit der Sie die aktuelle Grafik als Metadatei in andere Anwendungen exportieren können (siehe Kapitel 4.5.1).

Anpassen der Benutzeroberfläche

Zur Laufzeit haben Sie beim TreeDesigner einige Möglichkeiten, die Oberfläche des Programms anzupassen:

  • Alle Symbolleisten unter der Menüzeile sowie die Farbpalette benutzen die in Delphi 4 eingeführte Docking-Technik, sind also abtrennbar und beliebig am oberen oder unteren Fensterrand andockbar. Über das Popup-Menü der Symbolleisten können Sie auswählen, welche Leisten sichtbar sind. Der TreeDesigner speichert die Konfiguration der Leisten zwischen den Programmläufen. Die Werkzeugleiste am linken Fensterrand ist fest verankert. [Diese Funktion steht unter Linux nicht zur Verfügung. Zum Docking in der Linux-Version 3.5 siehe hier.]
  • Andockbar sind auch der TreeExplorer und das Übersichtsfenster, einzig zugelassene Andockstelle ist allerdings der rechte Rand des Hauptfensters.
  • Das Popup-Menü zu den Linealen hat nur einen Menüpunkt, mit dem Sie die Schriftart anpassen können, die in den Linealen verwendet wird.
  • Im Popup-Menü des TrackBars wählen Sie zwischen zwei verschiedenen Modi für die Skalierung des Zoom-Reglers (siehe Kapitel 5.6.3) und zwischen drei zusätzlichen Zoom-Modi, die festlegen, ob beim Zoomen auf die Bildmitte, auf die Markierung oder überhaupt nicht fokussiert werden soll.
  • Mit Optionen | Tastenkürzel... gelangen Sie in den Tastenkürzeleditor aus Kapitel 4.6.3, in dem Sie jedem der Hauptmenüpunkte ein anderes Tastenkürzel zuweisen können.

Eine Übersicht über die Dialogfenster des TreeDesigners gibt der nächste Abschnitt.

Das Grafikelemente-TreeView (TreeExplorer)

Im TreeView listet der TreeDesigner alle Grafikelemente des aktuellen Dokuments anhand ihrer Beschriftung auf, wobei verbundene Elemente hierarchisch dargestellt werden. Er ist am rechten Rand des Hauptfensters andockbar. Sein Inhalt wird nur dann automatisch aktualisiert, wenn es aktiviert wird und seit seiner letzten Aktualisierung ein anderes Dokumentfenster aktiviert wurde. Durch einen Doppelklick in den TreeView-Bereich ist jedoch jederzeit eine manuelle Aktualisierung möglich.

Gegenüber der Version 2.5 des TreeDesigners wurde die Handhabung des TreeExplorers weiter auf die Bearbeitung von VCL-Hierarchiegrafiken optimiert:

  • Gleich nach der Aktivierung des TreeExplorers wird in diesem ein Knoten markiert, der im aktuellen Grafikdokument sichtbar ist. Dies ist wichtig, wenn viele Knoten in einer VCL-Grafik unsichtbar sind, weil sie einem ausgeblendeten Teilbaum angehören.
  • Durch einen Doppelklick auf einen Baumknoten markieren Sie das entsprechende Grafikelement – vorausgesetzt, daß dieses durch eine eindeutige Beschriftung identifizierbar ist.
  • Bei einer normalen Auswahl (mit Einfachklick) eines TreeView-Elements wird das entsprechende Element (falls eindeutig beschriftet) im Zeichenfenster nur sichtbar gemacht, aber nicht markiert. Wenn Sie einen unsichtbaren Knoten wählen, erhalten Sie einen entsprechenden Hinweis in der Statuszeile.
  • Umgekehrt können Sie ein Grafikelement im Zeichenfenster markieren und dieses automatisch im TreeView hervorheben lassen. Hierzu dient ein entsprechender Punkt im Popup-Menü des TreeExplorers.

Das Übersichtsfenster

Ein weiteres andockbares Hilfsfenster ist das Übersichtsfenster. Es bezieht sich ebenfalls immer auf das aktuelle Dokument und zeigt dieses in einer Gesamtansicht an (der Dokumentinhalt wird also auf die Größe dieses Fensters verkleinert). Hilfslinien in der Übersicht markieren außerdem den im Dokumentfenster sichtbaren Bereich. Das Übersichtsfenster wird immer automatisch aktualisiert (bei jeder Änderung im aktuellen Dokument, beim Wechsel zwischen Dokumentfenstern und beim Scrollen innerhalb dieser Fenster).

[www.ewlab.de] [Delphi 2006] [Delphi 2005] [Kylix] [Delphi 6] [Delphi 5] [Delphi 4] [Impressum]