05 Jul 2006 

4D Draw oder 4D Chart?

4D Draw ist zum Zeichnen und mit 4D Chart lassen sich Geschäftsgraphiken erstellen.

Im Prinzip ist das die richtige Unterscheidung. Mit 4D Chart können alle was anfangen, mit 4D Draw erst wenn man muß. Ein anderer Unterschied sind die Kosten: 4D Chart ist Bestandteil jedes 4D – auch 4D Server, 4D Draw muß extra und für jeden Arbeitsplatz lizensiert werden. In den Objekt-Befehlen von 4D Chart stecken viele Fähigkeiten, die wir sonst von 4D Draw erwarten, beide teilen sich eine Basis. Mit den 4D Chart-Objektbefehlen läßt sich sehr vieles zeichnen, für das man zuerst dachte, 4D Draw einsetzen zu müssen. Was wird mir in 4D Chart fehlen?

Objektnamen

Jedes mit Befehlen des Type DR Draw object/CT Draw object neuerstellte Objekt gibt eine positive Objekt-ID oder eine negative Fehlernummer zurück. Man hat keinen Einfluß auf die Nummer. In 4D Chart ist das die einzig nutzbare Möglichkeit ein Objekt anzusprechen. In 4D Draw kann ich eine Referenz-Longint setzen mit DR SET REFNUM und noch viel effizienter einen Namen per DR SET NAME. Der Name ist effizienter weil in der Suche nach Namen auch der Joker verwendet werden kann und das Ergebnis mehr als ein Objekt beinhaltet. CT SET REFNUM gibt es auch für 4D Chart, ist dort aber ziemlich nutzlos, denn es fehlt CT SELECT BY ATTRIBUTE und deshalb ist die Refnum zu nix zu gebrauchen. Leider fehlt CT SET NAME komplett. Das tut schon weh! Der fehlende Name kann der wesentliche Grund sein, statt 4D Chart doch 4D Draw-Lizenzen erwerben zu müssen! Wie stets mit 4D: ein Workaround findet sich immer und das ist ein Lob. In GeoDDDD ist dieses Manko durch paralleles Führen zweier Arrays und Kapselung in Methoden vollkommen transparent kompensiert. Das kann man auch für andere Anwendungen einbauen *.

Zum Thema Text drehen steht ein Code-Snippet in der 4D Code Library bereit.

Gedrehter schwarzer Text sieht nicht gut aus!
Das ist ein bestehendes Problem von 4D Draw.
Man kann es umgehen, indem man dem Text nicht schwarz, sondern ein extrem dunkles grau zuweist.
Dann funzt der Ausdruck.
F.M.

Eine Testdatenbank für 4D 2004 incl. der Option schwarz und fast schwarz gibt es als Download. Der Code funktioniert für alle 4D-Versionen bis 2004 einschließlich.

Texte drehen

In 4D Chart sind Textobjekte nicht drehbar. Es fehlt der Befehl CT ROTATE. Textdrehen fehlt auch in 4D und wäre doch in den Titeln mancher Liste sehr platzsparend. Mir 4D Draw ist das kein Problem, abgesehen von zusätzlichen Lizenzkosten. 4D Chart kann Text nicht drehen, Sch..e.

Hintergrund-Schicht

4D Draw kennt das Befehlspaar DR ADD TO BACKGROUND und DR RELEASE BACKGROUND. Die Menü-Befehle sind in Arrange und Layout untergebracht, weil bestimmte Objekte in den Hintergrund transformiert werden und der gesamte Hintergrund freigegeben wird. Mit den Objekten im Hintergrund läßt sich per Programmiersprache alles anstellen, nur selektieren mit der Maus geht nicht. Beim Zeichnen von Karten werden alle Objekte, die nicht auswählbar sein sollen erst erzeugt und dann sofort in den Hintergrund gesetzt. So können dort helfende Informationen wie Nutzungsarten oder flächige Hervorhebungen sichtbar sein, klickbar bleibt aber nur das Grundstück. Das ist mit 4D Chart workaround-bar, ein falsches Objekt wird sofort deselektiert. Aber das flackert, denn es fehlt CT SET UPDATE MODE. Mit DR SET UPDATE MODE($dr_area;0) läßt sich durch Ausschalten des Updates bis zum Ende einer Methode viel Zeit gewinnen; doch Zugucken macht mehr Spaß.

Editmode

Wird ein Objekt ausgewählt, erhält es acht Griffe. Je einen an den vier Ecken des umgebenden Rechteckes (bounding box) und je einen in der Mitte zwischen zwei Ecken. Das sieht bei unregelmäßigen Figuren nicht mehr schön aus. In 4D Draw läßt sich das ausgewählte Objekt in den Editier-Modus setzen und dann ist jeder Stützpunkt ein Griff. Das sieht viel besser aus, geht aber nicht mit 4D Chart. Als Workaround hilft nur eine graphische Hervorhebung (z.B. andere Linienart, dick und rot), der Editiermodus fehlt doch.

Dit 'n Dat

Die Genauigkeit beim Zeichnen mit der Maus ist die der Bildschirmkoordinaten. Also ein Pixel ist die kleinste Einheit und näher ranzoomen hilft genauer arbeiten. Werden Objekte per Programm erzeugt, ist die Genauigkeit sehr viel höher. Wir haben gute Erfahrungen gemacht, Koordinaten mit 6 Stellen hinter dem Komma zu verwenden und identische Werte liegen tatsächlich aufeinander. Nur manuell anpassen geht nicht so exakt, einmal anpacken und die Genauigkeit ist flöten.

Text ist in anderen Darstellungen als 100% nicht editierbar. Das kann etwas dauern, bis man es merkt.

Alternativen

Stand Juli 2006 mit Anpassung

Man sollte es kaum glauben, aber eine gibt es. Das Canvas Plugin von Pluggers aus den Niederlanden. Ich warte nur drauf, einen Auftrag ins Haus zu bekommen, um dessen besondere Fähigkeiten auszutesten.

Es gibt noch eine, nämlich SVG. Ich habe noch keinen Editor gefunden, mit dem ich zufrieden wäre, der an 4D Draw/4D Chart heranreichte.

In V11 und WebArea kommt das Canvas-Element aus HTML5 dazu. Was ich bisher probiert habe, crasht gerne.

* zusätzliche Informationen werden mit dem PlugIn-Bereich in einem Blob gespeichert und auch wieder geladen, z.B. das Inhaltsverzeichnis in 4D Write

4D Themen: Berichte in Arbeit