Von Dialogen und Dialogboxen, Teil 4

In der letzten Folge über die Grundlagen der Programmierung von Dialogboxen beschäftigen wir uns mit einem etwas komplexeren Dialog. Die allmählich entwickelte Dialogbox verfügt über zwei Paare von Radioknöpfen (oder -buttons) sowie eine feste Einstellmöglichkeit.

Der Aufbau der Dialogbox soll ausnahmsweise nicht ausführlich erläutert werden. Als Hilfe soll das nebenstehende Bild dienen, welches die Namen, Typen, Status und Flags der Objekte beschreibt. Sie müssen unbedingt darauf achten, daß die Radiobuttons - wie auf dem Bild zu sehen - als Childs jeweils eines Objekts eingetragen werden. Nur so ist es möglich, wirklich nur einen Knopf eines jeden Paars zu wählen. Würden die Parent-Objekte entfallen, so könnte nur einer der vier Radiobuttons gewählt werden.

Neu sind auch die »TOUCHEXIT«-Objekte. Klickt eine Anwenderin oder ein Anwender auf eines dieser Objekte, so wird die »form_do()«-Routine verlassen und die Anwendung erhält die Kontrolle. Dieser Möglichkeit ist es zu verdanken, daß eine komplexere Verwaltungsroutine aufgebaut werden kann.

Nun aber zur Programmierung. Die Radiobuttons sind so gestaltet, daß mit einem Klick auf »männlich« oder »weiblich« auch die passende Bezeichnung »Anwender« bzw. »Programmierer« oder »Anwenderin« bzw. »Programmiererin« erscheint. Die beiden Radiobuttons haben daher den Status »EXIT« erhalten, damit das Programm den neuen Text in die Dialogbox eintragen und das betreffende Objekt neu zeichnen kann. Die beiden anderen Radiobuttons sind so angelegt, wie es in der letzten Folge besprochen wurde.

Die beiden Objekte mit den Pfeilen vom Typ »G_BOXCHAR« (ob_spec in der Objektstruktur enthält die Information über den Buchstaben, die Farbe, den Rahmen u.s.w.) erlauben die Auswahl der Sprache. Da in diesem Fall Radiobuttons wegen der größeren Auswahlmöglichkeit überfordert wären, Texteingabefelder jedoch zu viele Möglichkeiten erlauben, bietet die dargestellte Form der Auswahl eine gute Wahl. Mit einem Klick auf einen der Pfeile soll die nächste Sprache erscheinen. Der Status »TOUCHEXIT« bedeutet auch, daß die (linke) Maustaste festgehalten werden kann, und somit mehrere Einstellmöglichkeiten durchlaufen werden können. Dies ist wesentlich komfortabler, als mit einem Klick auf die Maustaste nur einen Eintrag weiterrücken zu können. »TOUCHEXIT« schließt eine Exit-Funktion ein. Das Programm erhält mit einem Klick auf einen der Pfeile wieder die Kontrolle. Dies ist nötig, denn das Programm muß den Text in der Dialogbox ändern! Das GEM kann eine derartige Aufgabe nicht übernehmen.

Schauen Sie bitte die Dialogverwaltung im Listing an. Dort werden Sie sehen, wie das Programm die zusätzliche Verwaltungsarbeit übernimmt. Mit dem heutigen Beispiel sind die Grundlagen soweit erarbeitet, daß Sie selbst Dialogboxen anlegen können. Nicht behandelt wurden Objekte vom Typ »G_IMAGE« und »G_ICON«. Auch wenn es sich hier um »Bildchen« handelt, ist die Handhabung nicht schwerer als bei anderen Objekten. Die beiden Objekttypen »G_IMAGE« und »G_ICON« besitzen wie auch Objekte vom Typ »G_TEXT« mit dem 6 x 6Font - die Schwierigkeit, bei unterschiedlichen Bildschirmauflösungen unterschiedliche Größen zu haben. Ist ein Icon 32 Pixel hoch, so entspricht dies bei der hochauflösenden Darstellung einer Höhe von zwei Zeichenzellen, bei der mittelauflösenden Darstellung jedoch schon einer Höhe von vier Zeichenzellen.

Auch »G_TITLE« wurde in keinem Beispiel verwandt. Ein Objekt dieses Typs taucht auch in keiner Dialogbox auf, denn dieser Typ ist den Menüs vorbehalten. Auch Menüs und Default-Objektbäume (Desktops) sind nur Objektbäume wie die Dialogboxen! Allerdings sind Menüs und Desktops besondere Objektbäume.

Dietmar Rabich/uw

Literatur:

[1] Atari ST Profibuch, Jankowski/ Rabich/Reschke, Sybex 1987/88/89

[2] GEM Programmier-Handbuch, Balma/Fitler, Sybex 1987/88

Listings



Aus: ST-Magazin 10 / 1990, Seite 76

Links

Copyright-Bestimmungen: siehe Über diese Seite