Tipps und Tricks – Popup-Erläuterungen im User Interface Andreas Zeike fragte mich, ob es nicht möglich sei, Popups als Erläuterungen im User Interface eines GDL-Objektes unterzubringen.
Das brachte mich auf die Idee der Erzeugung von schwebenden Dialogfeldern, die beim Klicken auf ein „?“ aufpoppen.
Das Prinzip ist ähnlich wie beim Seitenwechsel mit Booleschen Parametern.
Eine Pixelgrafik in Form eines Fragezeichens wird auf ein Ankreuzfeld gelegt. Beim Klicken auf das Fragezeichen wird der Boolesche Parameter aktiviert.
Durch eine IF-Anweisung im UI-Script wird dann eine große Grafik angezeigt, die über großen Teilen des Interface schwebt und dieses verdeckt (daneben funktioniert leider nicht).
Auf diesen Popupflächen können Erläuterungen zur Eingabe von Parametern gegeben werden, oder irgendwelche anderen benutzerspezifischen Dinge.
Geschlossen wird das Popupfeld durch Klicken auf das Windowstypische X-Feld in der rechten oberen Ecke. Damit das klappt, muss sich beim Aktivieren des Booleschen Parameters die Position des Ankreuzfeldes von der ursprünglichen Position an die Stelle ändern, die genau unter dem X des Popups liegt. Hierzu muss ggf. gleichzeitig eine andere UI-Funktion, die da gerade im Wege ist, deaktiviert werden.
Das alles ist vielleicht für den GDL-Programmierer ein bisschen aufwendig, aber extrem anwenderfreundlich.
Ein Beispiel für ein solches Popup ist im folgenden dargestellt:
- das Objekt dient dem Erzeugen solcher Popups. Leider sind die damit erzeugten Pixelgrafiken nicht pixelgenau, so dass sie etwas unscharf sind. Vielleicht hat jemand eine Idee, wie man diese Schwäche verbessert. Will man pixelgenaue und scharfe Popups erzeugen, fertigt man am besten in Photoshop eine Vorlagedatei an, bei der man dann nur den Inhalt verändert. Zum pixelgenauen Zeichnen sollte man das Raster aktivieren und auf eine Größe von 1x1 Pixel einstellen.
<OBJECT ID="GDLCtl" codebase="http://www.gdlcentral.com/bin/files/GDLCtl.cab#version=1,2,5,178" WIDTH="200" HEIGHT="200" CLASSID="CLSID:64D9B72C-E42A-490e-9181-221E1E035A14"><PARAM NAME="GdllistTxt" VALUE=""><PARAM NAME="SRC" VALUE="http://www.download.b-prisma.de/objekte/Popup_Maker.gsm"><embed name='GDLCtl' width='200' height='200' Src='http://www.download.b-prisma.de/objekte/Popup_Maker.gsm' GdlListTxt=''></OBJECT>
Ein weiteres Beispiel ist eine einfachere Form, bei der man zum Deaktivieren des Popups ein zweites Mal auf das Fragezeichen klickt:
<OBJECT ID="GDLCtl" codebase="http://www.gdlcentral.com/bin/files/GDLCtl.cab#version=1,2,5,178" WIDTH="200" HEIGHT="200" CLASSID="CLSID:64D9B72C-E42A-490e-9181-221E1E035A14"><PARAM NAME="GdllistTxt" VALUE=""><PARAM NAME="SRC" VALUE="http://www.download.b-prisma.de/objekte/Dachstuhl.gsm"><embed name='GDLCtl' width='200' height='200' Src='http://www.download.b-prisma.de/objekte/Dachstuhl.gsm' GdlListTxt=''></OBJECT>
Ich möchte vorschlagen, dass man ähnlich wie für ArchiCAD eine Wunschliste für Verbesserungen von GDL in diesem Forum eröffnet. Einer meiner Wünsche zu diesem Thema wären folgende Befehle:
UI_POPUP x,y,Breite,Höhe,“Textinhalt“
UI_POPUP x,y,Breite,Höhe,“Grafischer Inhalt (Datei)“
In viele Fällen können solche Popups eine wertvolle Hilfe für den Anwender darstellen, ohne wertvollen Platz auf den knapp bemessenen UI-Flächen zu beanspruchen.
Danke, Andreas, für die Anregung.
Eine zweite Möglichkeit, Erläuterungen, ins UI einzufügen, ist das Anzeigen von Erläuterungstext auf der normalen Interface Oberfläche, der dann auftaucht, wenn man auf ein Fragezeichenfeld (o.ä.) klickt. In diesem Fall wird dann der gesamte vorher angezeigte Inhalt der UI-Seite (oder ein Teil davon) ausgeblendet. Dies lässt sich durch eine IF...THEN Bedingung bewerkstelligen.
Folgendes Beispiel zeigt so etwas:
<OBJECT ID="GDLCtl" codebase="http://www.gdlcentral.com/bin/files/GDLCtl.cab#version=1,2,5,178" WIDTH="200" HEIGHT="200" CLASSID="CLSID:64D9B72C-E42A-490e-9181-221E1E035A14"><PARAM NAME="GdllistTxt" VALUE=""><PARAM NAME="SRC" VALUE="http://www.download.b-prisma.de/objekte/Carport_bp.gsm"><embed name='GDLCtl' width='200' height='200' Src='http://www.download.b-prisma.de/objekte/Carport_bp.gsm' GdlListTxt=''></OBJECT>
Es ist natürlich möglich, neben Text (UI_OUTFIELD) auch erläuternde Grafiken (UI_PICT) einzufügen.
Diese Idee der benutzerfreundlichen Erläuterungen habe ich das erste Mal bei einem Objekt von GDL-Guru Laurent Godel gesehen; danke hierfür.
Eine dritte Möglichkeit besteht darin, im Kommentar-Feld eine URL für eine html-Seite anzugeben.
Wenn man ab ArchiCAD 7.0 auf das Websymbol im Dialogfeld des Bibliothekselementes klickt (bei aktiviertem Kommentarfeld: unterster Button),
<img src="http://www.download.b-prisma.de/objekte/URL_test.gif" alt=" - " />
wird die entsprechende Internet-Seite geöffnet, auf der sich natürlich wesentlich mehr Informationen und größere Grafiken als im User Interface oder in Popups unterbringen lassen. Die URL kann auch eine Adresse auf der Festplatte sein.
Beispiel für eine Web-URL:
#
http://www.download.b-prisma.de/test.html Beispiel für eine Festplatten-URL:
#
file://../GDL/Test_URL.html Im zweiten Beispiel muss sich das GDL-Objekt und die html-Datei im selben Verzeichnis mit der Bezeichnung „GDL“ befinden.
Das Zeichen „#“ ist obligatorisch.
Derzeit ist nur eine einzige URL im Kommentarfeld zulässig.
Die Webschaltfläche ist derzeit nur in ArchiCAD verfügbar; im GDL Web Control gibt es sie nicht; im GDL Object Explorer muss die HTML-Datei den gleichen Dateinamen wie das Objekt besitzen (Achtung: Endung „htm“ !), ein Eintrag im Kommentarfeld ist nicht nötig.
Weitere Erfahrungen zu diesem Thema würden mich sehr interessieren.
[ 03. Juli 2005, 14:13: Beitrag editiert von: Jochen Suehlo ]