MultiDialog fr Atari TOS-Rechner GEM-Dialoge und Multitasking Anleitung fr die Versionen ab 1.00 von Helmut Neukirchen Stand: 25. Mai 1993 (c) 1992-93, alle Rechte vorbehalten Inhaltsverzeichnis: I. Demonstration fr Neugierige II. Einleitung III. MultiDialog in der Praxis IV. Installation V. Konfiguration VI. Einschr„nkungungen und zuknftige Versionen VII. GEM-Programmierer und MultiDialog VIII. Fragen und Antworten IX. Vertrieb, Rechtslage Zu dieser Anleitung: Eine Zusammenfassung erhalten Sie, indem Sie nur die Textstellen lesen, die eingerckt und rechtsbndig geschrieben sind. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I. Demonstration fr Neugierige - MULTDIAL.PRG starten (sollte statt MULTDIAL.PRG nur MULTIDIAL.ACC vorhanden sein, kann man auch MULTDIAL.ACC in MULTDIAL.PRG umbennen) - Daraufhin sollte eine Dialogbox erscheinen, die sich in einem Fenster befindet. Dieses Fenster kann man nach Lust und Laune verschieben. - Wenn man mit MultiTOS (oder anderen Multitasking- Erweiterungen) arbeitet, kann man jetzt - ohne den Dialog von MULTDIAL.PRG zu beenden - z.B. LINES.PRG starten und das Multitasking bei aktiver Dialogbox bewundern. - Den Dialog von MULTDIAL.PRG kann man beenden, indem man dort auf "OK" oder "Abbruch" klickt. - Die Dialogboxen aller anderen Programme sollten, nun ebenfalls in Fenstern erscheinen. (Falls nicht, findet man die Grnde in Kapitel VI.) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> II. Einleitung Wir befinden uns im Jahre 1993 n. Chr. Das ganze Multitasking auf dem ST ist von Dialogboxen lahmgelegt... Das ganze Multitasking ? Nein! Ein von einem unbeugsamen Programmierer entwickeltes Programm h”rt nicht auf, den Dialogboxen Widerstand zu leisten. Was wollen uns diese Worte sagen ? Sobald eine Dialogbox auf dem Bildschirm dargestellt wird, steht fr alle anderen Applikationen, die ebenfalls auf den Bildschirm ausgeben wollen, das Multitasking komplett!!! Aus dem - ach so sch”nen - Multitasking-Betriebssystem wird zu diesem Zeit- punkt wieder fast ein Singletasking-Betriebssystem, das wertvolle Zeit damit verbringt, tatenlos in einer Schleife zu warten bis der Benutzer nun endlich den Dialog beendet! Doch das muž nicht sein: Was Atari bei der Implementierung des Multitasking-AES vergessen hat, wird nun durch MultiDialog nachgeholt: Dialogboxen vorhandener GEM-Applikationen erscheinen in GEM-Fenstern; MultiDialog erm”glicht so uneingeschr„nktes Multitasking unter GEM. (naja, ATARI wird es wohl nicht vergessen haben, sondern die Implementierung verworfen haben, da es Inkompatibilit„ten gibt (s. Kapitel VI), die sich ATARI nicht leisten kann.) Mittlerweile drfte klargeworden sein, daž MultiDialog haupts„chlich fr ein Multitasking-TOS gedacht ist: Entsprechend wurde es auch unter MultiTOS getestet (auf ST, TT und FALCON). Zu Mag!X, MultiGEM oder anderen Multitasking-Erweiterungen kann ich nichts sagen, aber MultiDialog mžte auch unter diesen Systemen laufen, da es keine speziellen Eigenschaften von MultiTOS voraussetzt. (Das kann sich aller- dings in zuknftigen Versionen „ndern, da es im Moment bereits MultiTOS Aufrufe benutzt, wenn dieses vorhanden ist!) (es w„re nett, wenn mir jemand mal schreibt, ob MultiDialog mit Mag!X oder MultiGEM funktioniert...) Im brigen l„uft MultiDialog auch auf den altbekannten TOS-Versionen, allerdings drfte es dort nur im Zusammenspiel mit Accessories sinnvoll zum Einsatz kommen. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> III. MultiDialog in der Praxis Was macht MultiDialog ? MultiDialog verankert sich im Betriebssystem und sorgt bei beliebigen GEM- Applikationen dafr, daž deren Dialoge komplett in Fenstern abgewickelt werden. Unter einem Multitasking GEM k”nnen daher andere Applikationen ungehindert weiterlaufen. Solche Dialoge kennen einige vielleicht bereits von anderen, neueren Applikatonen, wo Dialogboxen in Fenstern bereits "serienm„žig" vorzufinden sind. MultiDialog macht dasselbe, halt nur mit beliebigen GEM-Applikationen. Der Begriff "beliebige GEM-Applikationen" muž an dieser Stelle allerdings sofort wieder relativiert werden, da es tats„chlich viele Programme gibt, bei denen MultiDialog keine Wirkung zeigt. Ist das bei einem Programm der Fall, so wird der entsprechende Dialog wie bisher gewohnt durchgefhrt, mit der Konsequenz, daž das Multitasking lahmgelegt ist. (N„heres dazu in Kapitel VI. "Einschr„nkungen und zuknftige Versionen") Was „ndert sich in der Praxis ? Die Bedienung der Dialoge erfolgt wie gewohnt und doch gibt es einige Neuerungen: Die Dialogboxen mssen nicht mehr unbedingt in der Mitte erscheinen: Bisher erschienen die Dialogboxen genau in der Bildschirmmitte. Insbesondere auf Grožbildschirmen ist das jedoch sehr l„stig, da dann die Wege, die man mit dem Mauszeiger zurcklegen muž, sehr grož werden. MultiDialog bietet die M”glichkeit, die Dialogbox an anderen Positionen erscheinen zu lassen. Die Dialogboxen erscheinen in Fenstern: Fr die Optik heižt das, daž alle Dialogboxen am oberen Rand den bekannten Bewegungs- und Namensbalken eines Fensters besitzen und zus„tzlich den Fensterrand samt Schatten "verpažt" bekommen. Das heižt aber auch, daž die Gesamtausmaže einer Dialogbox gr”žer werden, so daž sie evtl. nicht mehr komplett auf den Bildschirm pažt. Im Extremfall ist dann die unterste Zeile im Dialog nicht mehr sichtbar. Dialog-Fenster, die von MultiDialog fr Dialoge ge”ffnet wurden, besitzen den Titel " MultiDialog: ", wobei der Name des Programms ist, von dem der Dialog stammt. (Wenn Sie kein MultiTOS benutzen, erscheint bei Accessories der Name "Accessory".) Da das Fenster einen Beˆ Ž€ÏŒˆº=:5°·720¶´º24²3²¹°¶º2…"4°¶7³±7¼;2¹±´7±2·;²¹22·…"0¹3:·5º4··4²¹:0¶62¹24·3¹—À@`çÀœ3âcã"a""""báá #€ü"  `ƒ€p€! "ã" ` p0œ3óóóóóóóóóóóóóóóóóóóóóóóóóóóóóóä``†`ƒ€`àƒàsá€sæ `†`ƒ€aσ"" O‚œ3ü3ü'ƒ"3âcáÈ`!bàp<<3óóóóóóóóóóóóóóóóà`á""sâb3æ`ƒ€`"ã€"``"àN` sâcä``€c€"à€b0<< Kopieren Sie die Datei MULTDIAL.PRG in den AUTO-Ordner Ihres Bootlaufwerks. Beim n„chsten Systemstart wird es dann automatisch eingebunden. Nach der Installation k”nnen Sie MultiDialog konfigurieren. Starten Sie hierzu MULTDIAL.PRG oder richten Sie MultiDialog als Accessory ein. (MULTDIAL.PRG als MULTDIAL.ACC in das Verzeichnis kopieren, aus dem Ihre Accessories geladen werden. In der Regel also A:\ oder C:\) Der Accessory-Betrieb drfte allerdings nur notwendig sein, wenn Sie die Konfiguration oft „ndern mssen, z.B. um die optimalen Einstellungen fr ein Programm herauszufinden. Hinweis fr MiNT/MultiTOS-Benutzer: Ob Sie MULTDIAL.PRG vor oder nach MINT.PRG in den AUTO-Ordner kopieren, sollte eigentlich egal sein (die Programmflags fr die Memory-Protection mssen jedoch auf GLOBAL eingestellt sein). Ich empfehle jedoch, es nach MINT.PRG zu starten. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> V. Konfiguration Wird MultiDialog als GEM-Programm gestartet, so erscheint eine Dialogbox, in der MultiDialog konfiguriert werden kann. Wurde MultiDialog als Accessory installiert, so muž man dazu in der Menleiste den Accessory-Eintrag "MultiDialog" anw„hlen. (Wurde MultiDialog nur als Accessory installiert, so muž zun„chst MULTDIAL.PRG gestartet werden, um MultiDialog zu installieren. Diesen Fall teilt das Accessory dem Benutzer ber eine Alertbox mit.) Nach Start von MULTDIAL.PRG oder nach anw„hlen des Accessory-Eintrags "MultiDialog" erscheint auf dem Bildschirm eine Dialogbox, in der verschiedene Parameter von MultiDialog eingestellt werden k”nnen. (Die Bedeutung der einzelnen Einstellungen wird sich dem Nicht-Programmierer nicht so schnell erschliežen, da sie sehr technischer Art sind. Die meisten Einstellungen mssen aber sowieso nie ver„ndert werden, da sie standard- m„žig auf der sinnvollsten Stellung stehen.) Im einzelnen sind das folgende Schalter: "MultiDialog: An/Aus": (MultiDialog ein- und ausschalten) Mit diesem Schalter kann MultiDialog abgeschaltet werden. MultiDialog ist dann zwar immer noch im Betriebssystem eingeklinkt, aber alle weiteren Aufrufe, die MultiDialog sonst abfangen wrde, werden ignoriert und einfach ans Betriebssystem durchgereicht. W„hrend dieser Schalter von globaler Wirkung ist, k”nnen sich alle weiteren Schalter auf einzelne Applikationen beziehen (s.u.): "FormCenter: immer/Mitte/Ecke/Maus": (Position der Dialogboxen) Diese Schalter beziehen sich auf den Ort, an dem eine Dialogbox erscheint. (der Name stammt von der GEM-Funktion form_center, mit der Applikationen ihre Dialogboxen positionieren k”nnen.) Normalerweise erscheinen Dialogboxen immer in der Mitte des Bildschirms; auf Ganzseitenbildschirmen kann das aber auf Dauer ziemlich st”rend sein, da man die Maus erst mehrere Kilometer ;-) bewegen muž, um den Dialog bedienen zu k”nnen. MultiDialog kann dies lindern, indem es mehrere Alternativen anbietet, die Dialogbox zu positionieren. In der Stellung "Ecke" wird die Dialogbox in der linken oberen Ecke (also in der N„he der Menleiste) erscheinen, in der Stellung "Maus" sucht die Dialogbox die N„he des Mauszeigers. Ist "Mitte" eingestellt, so erscheint die Dialogbox - wie gewohnt - in der Mitte, allerdings merkt sich MultiDialog die Position der Dialogboxen, so daž sie an der Stelle erscheinen, an der Sie sie zuletzt positioniert haben. Im Gegensatz zu den bisher aufgefhrten M”glichkeiten, verh„lt sich "immer" nicht so. Hier erscheint die Dialogbox immer in der Mitte des Bildschirms, egal wo sie sich beim letzten Mal befand. Sollten Sie irgendwelche Probleme mit Dialogboxen haben, die nicht ganz sichtbar sind, weil sie z.B. aus dem Bildschirm ragen, stellen Sie hier "immer" ein. Dann wird die Routine benutzt, die auch ohne MultiDialog verwendet wrde. "Fenster bei: Alert|FormDial|FormDo": (Bedingungen, wann Fenster verwendet werden) Diese Schalter geben an, unter welchen Umst„nden ein Dialog in einem Fenster dargestellt wird. Ist "Alert" eingeschaltet, so erscheinen Alertboxen in einem Fenster. (Alertboxen sind daran zu erkennen, daž sie maximal 3 Kn”pfe und 5 Zeilen Text, sowie evtl. ein kleines Warnsymbol besitzen.) Alertboxen sollten eigentlich keine Probleme bereiten, weshalb dieser Schalter immer aktiviert sein kann. (Naja, mit dem Redraw gibt es manchmal doch Probleme, die aber rein optischer Natur sind.) Die beiden anderen Schalter beziehen sich nicht mehr auf Alertboxen, sondern auf Dialogboxen, welche ”fter Verwendung finden. Die Einstellung "FormDial" bietet die gr”žte Flexibilit„t, es gibt jedoch einen Umstand, der es n”tig macht, "FormDial" zu deaktivieren (s. Kapitel VI.). (Der Name stammt von der GEM-Funktion form_dial, mit der Dialogboxen angekndigt werden sollen.) Sollten Sie feststellen, daž nach Beendigung eines Dialogs das Fenster "tot" zurckbleibt und nicht gel”scht wird, so deaktivieren Sie bitte den Schalter "FormDial" und verwenden Sie stattdessen die Einstellung "FormDo", die dieses Problem nicht aufwirft. (Lesen Sie dazu auch das Kapitel VIII. "Fragen und Antworten".) Da es aužerdem einige Programme gibt, die keine form_dial-Aufrufe t„tigen, gibt es aužerdem noch die M”glichkeit, mittels "FormDo" auch diese in den Genuž von Fenstern kommen zu lassen. (mittels form_do k”nnen Programme einen Dialog bedienen lassen.) Dialogboxen, die erst durch die Einstellung "FormDo" in Fenster gelangen, sind allerdings nicht so bequem zu Bedienen, wie diejenigen bei denen "FormDial" gengt. Zum einen k”nnen deren Fenster nicht verschoben werden, zum anderen wird das Fenster zu Anfang jedes FormDo-Aufrufs ge”ffnet und bei dessen Ende geschlossen. Daraus resulieren zwei Nachteile: In vielen Dialogen kann der Benutzer Eintr„ge in der Dialogbox ber Pfeile o.„. scrollen (z.B. im IKONEN ANMELDEN Dialog der neueren Desktops, wobei dieser Dialog ein schlechtes Beispiel ist, wie weiter unten erl„utert wird). Jedesmal wenn ein neuer Eintrag angezeigt wird, muž das Fenster ge”ffnet und sp„ter wieder geschlossen werden. Zum einen ben”tigt das jedesmal relativ viel Zeit, zum anderen kann es passieren, daž dieser Dialog dabei von anderen Fenstern, die kurzzeitig aktiv werden, bermalt wird (was fr die Optik sicherlich nicht vorteilhaft ist). Der letztere Effekt kann evtl. mit der Einstellung bei "ObjcDraw bei FormDo" gelindert werden. Im Gegensatz zu FormDial-Dialogen k”nnen die Fenster der FormDo-Dialoge nicht verschoben werden! Es gibt noch eine dritte Art von Dialogen, n„mlich solche, die weder einen form_dial-, noch eine form_do-Aufruf benutzen. Das sind in der Regel solche, die bereits eine besondere Form der Dialogbehandlung anbieten (z.B. verschiebbare (sog. FlyDials) oder ber Tastatur bedienbare Dialoge). Diese k”nnen von MultiDialog nicht abgefangen und in Fenstern dargestellt werden. "ObjcDraw bei FormDo: Ja/Nein": (Inhalt der Dialogbox neuzeichnen) Diesen Schalter k”nnen Sie nur ver„ndern wenn bei "Fenster bei:" "FormDo" aktiviert ist, da sich diese Einstellung nur auf Dialoge bezieht, die bei einem form_do-Aufruf in ein Fenster umgeleitet wurden. Wie bereits oben erw„hnt k”nnen dabei Probleme auftreten, weil der Inhalt der Dialogbox durch andere Fenster bermalt wird. Da das in der Regel der Fall ist, sollte hier "Ja" eingestellt werden. Manche Dialogboxen enthalten jedoch Grafiken (z.B. Bilder, Farbverl„ufe), die MultiDialog nicht ber den GEM-Aufruf objc_draw rekonstruieren kann; in diesem Fall ist "Nein" einzustellen. "^", "v", "Neu", "L”schen": (Liste fr automatische Umschaltung) Da das eine Programm eine andere Einstellung als das andere ben”tigt, besitzt MultiDialog eine automatische Umschaltung der Einstellungen. Das geschieht ber eine Liste, in der jedem Programm seine Einstellung zugeordnet ist. Mittels des "Neu"-Knopfes kann ein neuer Eintrag in der Liste angelegt werden. Tippen Sie dazu nach Drcken des "Neu"-Knopfes einfach den Namen des Programms, fr das eine spezielle Einstellung n”tig ist, ein. (Nehmen SieO‰ˆÏŽÁÏ€OˆÏ€€Ï‚‚€ im Fenstertitel angezeigt wird. Wenn Sie kein MultiTOS verwenden, kann der Name von Accessories nicht ermittelt werden; daher ist fr Accessories auch keine automatische Umschaltung m”glich.) Mit den Pfeilkn”pfen k”nnen Sie/‰€Œω‚O˜„9ˆOŒ9ˆ€Ï€‰Ïðp€Ž „9ˆ‚ ωˆˆÏ˜„ˆ€ˆÏ9€‰ˆ€ÏÄOŒˆ‚ˆÏ„ Ï‚ÏŽωŽpp‡„€ŽO€ωˆO€ˆ ˆÏ‰ˆÏ‡ˆˆ€!‡ˆˆÏŽˆˆˆOŽÀÂpp™ŽO‰‚O€ˆÏ‡„€ŽO€ωˆ„ŒˆÏ˜„ˆ€ˆOŽˆÁψ ψO‰ˆðp˜„ŽOÌ™ˆŽÌÁωˆϘ„ˆ€ˆÏ‚>>>>>>>>>>>>>>>> V. Konfiguration Wird MultiDialog als GEM-Programm gestartet, so erscheint eine Dialogbox, in der MultiDialog konfiguriert werden kann. Wurde MultiDialog als Accessory installiert, so muž man dazu in der Menleiste den Accessory-Eintrag "MultiDialog" anw„hlen. (Wurde MultiDialog nur als Accessory installiert, so muž zun„chst MULTDIAL.PRG gestartet werden, um MultiDialog zu installieren. Diesen Fall teilt das Accessory dem Benutzer ber eine Alertbox mit.) Nach Start von MULTDIAL.PRG oder nach anw„hlen des Accessory-Eintrags "MultiDialog" erscheint auf dem Bildschirm eine Dialogbox, in der verschiedene Parameter von MultiDialog eingestellt werden k”nnen. (Die Bedeutung der einzelnen Einstellungen wird sich dem Nicht-Programmierer nicht so schnell erschliežen, da sie sehr technischer Art sind. Die meisten Einstellungen mssen aber sowieso nie ver„ndert werden, da sie standard- m„žig auf der sinnvollsten Stellung stehen.) Im einzelnen sind das folgende Schalter: "MultiDialog: An/Aus": (MultiDialog ein- und ausschalten) Mit diesem Schalter kann MultiDialog abgeschaltet werden. MultiDialog ist dann zwar immer noch im Betriebssystem eingeklinkt, aber alle weiteren Aufrufe, die MultiDialog sonst abfangen wrde, werden ignoriert und einfach ans Betriebssystem durchgereicht. W„hrend dieser Schalter von globaler Wirkung ist, k”nnen sich alle weiteren Schalter auf einzelne Applikationen beziehen (s.u.): "FormCenter: immer/Mitte/Ecke/Maus": (Position der Dialogboxen) Diese Schalter beziehen sich auf den Ort, an dem eine Dialogbox erscheint. (der Name stammt von der GEM-Funktion form_center, mit der Applikationen ihre Dialogboxen positionieren k”nnen.) Normalerweise erscheinen Dialogboxen immer in der Mitte des Bildschirms; auf Ganzseitenbildschirmen kann das aber auf Dauer ziemlich st”rend sein, da man die Maus erst mehrere Kilometer ;-) bewegen muž, um den Dialog bedienen zu k”nnen. MultiDialog kann dies lindern, indem es mehrere Alternativen anbietet, die Dialogbox zu positionieren. In der Stellung "Ecke" wird die Dialogbox in der linken oberen Ecke (also in der N„he der Menleiste) erscheinen, in der Stellung "Maus" sucht die Dialogbox die N„he des Mauszeigers. Ist "Mitte" eingestellt, so erscheint die Dialogbox - wie gewohnt - in der Mitte, allerdings merkt sich MultiDialog die Position der Dialogboxen, so daž sie an der Stelle erscheinen, an der Sie sie zuletzt positioniert haben. Im Gegensatz zu den bisher aufgefhrten M”glichkeiten, verh„lt sich "immer" nicht so. Hier erscheint die Dialogbox immer in der Mitte des Bildschirms, egal wo sie sich beim letzten Mal befand. Sollten Sie irgendwelche Probleme mit Dialogboxen haben, die nicht ganz sichtbar sind, weil sie z.B. aus dem Bildschirm ragen, stellen Sie hier "immer" ein. Dann wird die Routine benutzt, die auch ohne MultiDialog verwendet wrde. "Fenster bei: Alert|FormDial|FormDo": (Bedingungen, wann Fenster verwendet werden) Diese Schalter geben an, unter welchen Umst„nden ein Dialog in einem Fenster dargestellt wird. Ist "Alert" eingeschaltet, so erscheinen Alertboxen in einem Fenster. (Alertboxen sind daran zu erkennen, daž sie maximal 3 Kn”pfe und 5 Zeilen Text, sowie evtl. ein kleines Warnsymbol besitzen.) Alertboxen sollten eigentlich keine Probleme bereiten, weshalb dieser Schalter immer aktiviert sein kann. (Naja, mit dem Redraw gibt es manchmal doch Probleme, die aber rein optischer Natur sind.) Die beiden anderen Schalter beziehen sich nicht mehr auf Alertboxen, sondern auf Dialogboxen, welche ”fter Verwendung finden. Die Einstellung "FormDial" bietet die gr”žte Flexibilit„t, es gibt jedoch einen Umstand, der es n”tig macht, "FormDial" zu deaktivieren (s. Kapitel VI.). (Der Name stammt von der GEM-Funktion form_dial, mit der Dialogboxen angekndigt werden sollen.) Sollten Sie feststellen, daž nach Beendigung eines Dialogs das Fenster "tot" zurckbleibt und nicht gel”scht wird, so deaktivieren Sie bitte den Schalter "FormDial" und verwenden Sie stattdessen die Einstellung "FormDo", die dieses Problem nicht aufwirft. (Lesen Sie dazu auch das Kapitel VIII. "Fragen und Antworten".) Da es aužerdem einige Programme gibt, die keine form_dial-Aufrufe t„tigen, gibt es aužerdem noch die M”glichkeit, mittels "FormDo" auch diese in den Genuž von Fenstern kommen zu lassen. (mittels form_do k”nnen Programme einen Dialog bedienen lassen.) Dialogboxen, die erst durch die Einstellung "FormDo" in Fenster gelangen, sind allerdings nicht so bequem zu Bedienen, wie diejenigen bei denen "FormDial" gengt. Zum einen k”nnen deren Fenster nicht verschoben werden, zum anderen wird das Fenster zu Anfang jedes FormDo-Aufrufs ge”ffnet und bei dessen Ende geschlossen. Daraus resulieren zwei Nachteile: In vielen Dialogen kann der Benutzer Eintr„ge in der Dialogbox ber Pfeile o.„. scrollen (z.B. im IKONEN ANMELDEN Dialog der neueren Desktops, wobei dieser Dialog ein schlechtes Beispiel ist, wie weiter unten erl„utert wird). Jedesmal wenn ein neuer Eintrag angezeigt wird, muž das Fenster ge”ffnet und sp„ter wieder geschlossen werden. Zum einen ben”tigt das jedesmal relativ viel Zeit, zum anderen kann es passieren, daž dieser Dialog dabei von anderen Fenstern, die kurzzeitig aktiv werden, bermalt wird (was fr die Optik sicherlich nicht vorteilhaft ist). Der letztere Effekt kann evtl. mit der Einstellung bei "ObjcDraw bei FormDo" gelindert werden. Im Gegensatz zu FormDial-Dialogen k”nnen die Fenster der FormDo-Dialoge nicht verschoben werden! Es gibt noch eine dritte Art von Dialogen, n„mlich solche, die weder einen form_dial-, noch eine form_do-Aufruf benutzen. Das sind in der Regel solche, die bereits eine besondere Form der Dialogbehandlung anbieten (z.B. verschiebbare (sog. FlyDials) oder ber Tastatur bedienbare Dialoge). Diese k”nnen von MultiDialog nicht abgefangen und in Fenstern dargestellt werden. "ObjcDraw bei FormDo: Ja/Nein": (Inhalt der Dialogbox neuzeichnen) Diesen Schalter k”nnen Sie nur ver„ndern wenn bei "Fenster bei:" "FormDo" aktiviert ist, da sich diese Einstellung nur auf Dialoge bezieht, die bei einem form_do-Aufruf in ein Fenster umgeleitet wurden. Wie bereits oben erw„hnt k”nnen dabei Probleme auftreten, weil der Inhalt der Dialogbox durch andere Fenster bermalt wird. Da das in der Regel der Fall ist, sollte hier "Ja" eingestellt werden. Manche Dialogboxen enthalten jedoch Grafiken (z.B. Bilder, Farbverl„ufe), die MultiDialog nicht ber den GEM-Aufruf objc_draw rekonstruieren kann; in diesem Fall ist "Nein" einzustellen. "^", "v", "Neu", "L”schen": (Liste fr automatem MultiTOS vom 16.2.1993, dies kann bei zuknftigen MultiTOS Versionen scheitern. (Ich habe diesen Fehler Eric Smith gemeldet, hoffentlich ist er bald behoben!) Fehler-Berichte, die MultiDialog betreffen, bitte an meine Adresse (s.u.). Am liebsten natrlich per e-mail (Emaille?)! Aber, nicht vergessen: Immer Versionsnummer von MultiDialog, TOS-Version und bei MultiTOS das AES-Datum und Sprache des AES angeben. Was wird in den n„chsten Versionen von MultiDialog kommen ? Nun zun„chst einmal werde ich versuchen, die Zuverl„ssigkeit weiter zu erh”hen und die bekannten Fehler zu beheben. Wenn meine Arbeit finanziell untersttzt wird, kommt dann aužerdem noch eine Tasôaturuntersttzung hinzu, d.h. beliebige Dialogboxen k”nnen per Tastatur bedient werden. Ir` ·2;°·7;²¹224±´0º±´6°¶2´·2·!–¡·¶¸4¶2¹12¶À´2·6À¹¹²·:¶†…2´·!¨,3@¹¹2¹;²´º2¹:2%··:97¶632¶2=:¹%··34³º¹0º4··=:9±´92´±2·… ºÏ2¹22¶3´±:¹;4²¶62´±´:2´·22·3¶4¹±´9¸90±´4³²+2¹9´··#0¶699´±´…;4²¶22·3¶4¹±´9¸90±´4³²!2·>>>>>>>>>>>>>>>> V. Konfiguration Wird MultiDialog als GEM-Programm gestartet, so erscheint eine Dialogbox, in der MultiDialog konfiguriert werden kann. Wurde MultiDialog als Accessory installiert, so muž man dazu in der Menleiste den Accessory-Eintrag "MultiDialog" anw„hlen. (Wurde MultiDialog nur als Accessory installiert, so muž zun„chst MULTDIAL.PRG gestartet werden, um MultiDialog zu installieren. Diesen Fall teilt das Accessory dem Benutzer ber eine Alertbox mit.) Nach Start von MULTDIAL.PRG oder nach anw„hlen des Accessory-Eintrags "MultiDialog" erscheint auf dem Bildschirm eine Dialogbox, in der verschiedene Parameter von MultiDialog eingestellt werden k”nnen. (Die Bedeutung der einzelnen Einstellungen wird sich dem Nicht-Programmierer nicht so schnell erschliežen, da sie sehr technischer Art sind. Die meisten Einstellungen mssen aber sowieso nie ver„ndert werden, da sie standard- m„žig auf der sinnvollsten Stellung stehen.) Im einzelnen sind das folgende Schalter: "MultiDialog: An/Aus": (MultiDialog ein- und ausschalten) Mit diesem Schalter kann MultiDialog abgeschaltet werden. MultiDialog ist dann zwar immer noch im Betriebssystem eingeklinkt, aber alle weiteren Aufrufe, die MultiDialog sonst abfangen wrde, werden ignoriert und einfach ans Betriebssystem durchgereicht. W„hrend dieser Schalter von globaler Wirkung ist, k”nnen sich alle weiteren Schalter auf einzelne Applikationen beziehen (s.u.): "FormCenter: immer/Mitte/Ecke/Maus": (Position der Dialogboxen) Diese Schalter beziehen sich auf den Ort, an dem eine Dialogbox erscheint. (der Name stammt von der GEM-Funktion form_center, mit der Applikationen ihre Dialogboxen positionieren k”nnen.) Normalerweise erscheinen Dialogboxen immer in der Mitte des Bildschirms; auf Ganzseitenbildschirmen kann das aber auf Dauer ziemlich st”rend sein, da man die Maus erst mehrere Kilometer ;-) bewegen muž, um den Dialog bedienen zu k”nnen. MultiDialog kann dies lindern, indem es mehrere Alternativen anbietet, die Dialogbox zu positionieren. In der Stellung "Ecke" wird die Dialogbox in der linken oberen Ecke (also in der N„he der Menleiste) erscheinen, in der Stellung "Maus" sucht die Dialogbox die N„he des Mauszeigers. Ist "Mitte" eingestellt, so erscheint die Dialogbox - wie gewohnt - in der Mitte, allerdings merkt sich MultiDialog die Position der Dialogboxen, so daž sie an der Stelle erscheinen, an der Sie sie zuletzt positioniert haben. Im Gegensatz zu den bisher aufgefhrten M”glichkeiten, verh„lt sich "immer" nicht so. Hier erscheint die Dialogbox immer in der Mitte des Bildschirms, egal wo sie sich beim letzten Mal befand. Sollten Sie irgendwelche Probleme mit Dialogboxen haben, die nicht ganz sichtbar sind, weil sie z.B. aus dem Bildschirm ragen, stellen Sie hier "immer" ein. Dann wird die Routine benutzt, die auch ohne MultiDialog verwendet wrde. "Fenster bei: Alert|FormDial|FormDo": (Bedingungen, wann Fenster verwendet werden) Diese Schalter geben an, unter welchen Umst„nden ein Dialog in einem Fenster dargestellt wird. Ist "Alert" eingeschaltet, so erscheinen Alertboxen in einem Fenster. (Alertboxen sind daran zu erkennen, daž sie maximal 3 Kn”pfe und 5 Zeilen Text, sowie evtl. ein kleines Warnsymbol besitzen.) Alertboxen sollten eigentlich keine Probleme bereiten, weshalb dieser Schalter immer aktiviert sein kann. (Naja, mit dem Redraw gibt es manchmal doch Probleme, die aber rein optischer Natur sind.) Die beiden anderen Schalter beziehen sich nicht mehr auf Alertboxen, sondern auf Dialogboxen, welche ”fter Verwendung finden. Die Einstellung "FormDial" bietet die gr”žte Flexibilit„t, es gibt jedoch einen Umstand, der es n”tig macht, "FormDial" zu deaktivieren (s. Kapitel VI.). (Der Name stammt von der GEM-Funktion form_dial, mit der Dialogboxen angekndigt werden sollen.) Sollten Sie feststellen, daž nach Beendigung eines Dialogs das Fenster "tot" zurckbleibt und nicht gel”scht wird, so deaktivieren Sie bitte den Schalter "FormDial" und verwenden Sie stattdessen die Einstellung "FormDo", die dieses Problem nicht aufwirft. (Lesen Sie dazu auch das Kapitel VIII. "Fragen und Antworten".) Da es aužerdem einige Programme gibt, die keine form_dial-Aufrufe t„tigen, gibt es aužerdem noch die M”glichkeit, mittels "FormDo" auch diese in den Genuž von Fenstern kommen zu lassen. (mittels form_do k”nnen Programme einen Dialog bedienen lassen.) Dialogboxen, die erst durch die Einstellung "FormDo" in Fenster gelangen, sind allerdings nicht so bequem zu Bedienen, wie diejenigen bei denen "FormDial" gengt. Zum einen k”nnen deren Fenster nicht verschoben werden, zum anderen wird das Fenster zu Anfang jedes FormDo-Aufrufs ge”ffnet und bei dessen Ende geschlossen. Daraus resulieren zwei Nachteile: In vielen Dialogen kann der Benutzer Eintr„ge in der Dialogbox ber Pfeile o.„. scrollen (z.B. im IKONEN ANMELDEN Dialog der neueren Desktops, wobei dieser Dialog ein schlechtes Beispiel ist, wie weiter unten erl„utert wird). Jedesmal wenn ein neuer Eintrag angezeigt wird, muž das Fenster ge”ffnet und sp„ter wieder geschlossen werden. Zum einen ben”tigt das jedesmal relativ viel Zeit, zum anderen kann es passieren, daž dieser Dialog dabei von anderen Fenstern, die kurzzeitig aktiv werden, bermalt wird (was fr die Optik sicherlich nicht vorteilhaft ist). Der letztere Effekt kann evtl. mit der Einstellung bei "ObjcDraw bei FormDo" gelindert werden. Im Gegensatz zu FormDial-Dialogen k”nnen die Fenster der FormDo-Dialoge nicht verschoben werden! Es gibt noch eine dritte Art von Dialogen, n„mlich solche, die weder einen form_dial-, noch eine form_do-Aufruf benutzen. Das sind in der Regel solche, die bereits eine besondere Form der Dialogbehandlung anbieten (z.B. verschiebbare (sog. FlyDials) oder ber Tastatur bedienbare Dialoge). Diese k”nnen von MultiDialog nicht abgefangen und in Fenstern dargestellt werden. "ObjcDraw bei FormDo: Ja/Nein": (Inhalt der Dialogbox neuzeichnen) Diesen Schalter k”nnen Sie nur ver„ndern wenn bei "Fenster bei:" "FormDo" aktiviert ist, da sich diese Einstellung nur auf Dialoge bezieht, die bei einem form_do-Aufruf in ein Fenster umgeleitet wurden. Wie bereits oben erw„hnt k”nnen dabei Probleme auftreten, weil der Inhalt der Dialogbox durch andere Fenster bermalt wird. Da das in der Regel der Fall ist, sollte hier "Ja" eingestellt werden. Manche Dialogboxen enthalten jedoch Grafiken (z.B. Bilder, Farbverl„ufe), die MultiDialog nicht ber den GEM-Aufruf objc_draw rekonstruieren kann; in diesem Fall ist "Nein" einzustellen. "^", "v", "Neu", "L”schen": (Liste fr automat sich also fr einen Dialogmanager entscheiden... Frage: Wieso werden bei manchen Programmen die Dialoge nicht in Fenstern dargestellt ? Antwort: K”nnen Sie die betreffenden Dialoge ohne MultiDialog mit der Maus auf dem Bildschirm hin- und herbewegen oder die Kn”pfe mit der Tastatur bedienen ? Dann gibt es keine Chance, die Dialoge in Fenster zu verfrachten, da das Programm eine eigene Dialogverwaltung benutzt. Ansonsten k”nnen Sie mal probieren, den Knopf "FormDo" in der MultiDialog-Konfiguration zu aktivieren, vielleicht klappt's dann. Frage: Dialogboxen, die sehr dicht unter der Menuleiste erscheinen, werden nicht in ein Fenster umgeleitet. Warum ? Antwort: Bei diesen Dialogen ist kein Platz fr den Fensterrand, so daž dieser in der Menuleiste erscheinen wrde. Um das zu verhindern, wird daher kein Fenster ge”ffnet. Frage: Wieso erscheinen manche Alertboxen des MultiTOS (z.B. "Laufwerk antwortet nicht") nicht in Fenstern ? Antwort: Diese Alertboxen geh”ren zu kritischen Fehlern. Die sind selbst MultiDialog zu kritisch, so daž hier die herk”mmliche Routine benutzt wird. Frage: Bei einigen Programmen erscheinen Alertboxen auf dem Bildschirm, aber der Mauszeiger ist nicht sichtbar. Kann man das verhindern ? Antwort: Im Moment leider nicht. Programme, bei denen dieses Problem auftritt, verlassen sich auf die undokumentierte Tatsache, daž das AES bei einer Alertbox immer den Mauszeiger einschaltet. Da MultiDialog dazu nicht in der Lage ist (zumindest zur Zeit nicht) mssen Sie die Alertbox entweder "blind" bedienen oder Sie deaktivieren "Alert" im Konfigurations- Dialog bei "Fenster bei:". (Wenn mir jemand verr„t, wiO‚ ψˆ„ˆˆÏ€€ÁÏ€‚ˆOðpˆŽ€CÂ@„€ˆO€Ï€ ˆÏ€ ÁÏŒ‚O‰ˆÏˆÏ„ ŒŽÏ‚Áðp€9„ˆO‰‚O‡„€ ˆOˆ!„ÀÀÀÂppðpðp˜„Ž@ÏŽ Ïœˆ‰‚ˆOˆˆO™‚€OŒˆ ωŽO˜ˆ„ˆω‚O™‚€pp€ˆƒ‚ÏŽωˆOœ‚‰„ ‚€O„ˆˆÀÏ’ Ï€€ÏˆOŽ ˆÏ€ ˆÏŒˆÁÏ€€ ðp„ ‚ ˆÀÏ€O‚€Ï‚ ωŽO€ˆƒ‚‰ˆ€ÏÀppðpž€ÀÏr: "MultiDialog: An/Aus": (MultiDialog ein- und ausschalten) Mit diesem Schalter kann MultiDialog abgeschaltet werden. MultiDialog ist dann zwar immer noch im Betriebssystem eingeklinkt, aber alle weiteren Aufrufe, die MultiDialog sonst abfangen wrde, werden ignoriert und einfach ans Betriebssystem durchgereicht. W„hrend dieser Schalter von globaler Wirkung ist, k”nnen sich alle weiteren Schalter auf einzelne Applikationen beziehen (s.u.): "FormCenter: immer/Mitte/Ecke/Maus": (Position der Dialogboxen) Diese Schalter beziehen sich auf den Ort, an dem eine Dialogbox erscheint. (der Name stammt von der GEM-Funktion form_center, mit der Applikationen ihre Dialogboxen positionieren k”nnen.) Normalerweise erscheinen Dialogboxen immer in der Mitte des Bildschirms; auf Ganzseitenbildschirmen kann das aber auf Dauer ziemlich st”rend sein, da man die Maus erst mehrere Kilometer ;-) bewegen muž, um den Dialog bedienen zu k”nnen. MultiDialog kann dies lindern, indem es mehrere Alternativen anbietet, die Dialogbox zu positionieren. In der Stellung "Ecke" wird die Dialogbox in der linken oberen Ecke (also in der N„he der Menleiste) erscheinen, in der Stellung "Maus" sucht die Dialogbox die N„he des Mauszeigers. Ist "Mitte" eingestellt, so erscheint die Dialogbox - wie gewohnt - in der Mitte, allerdings merkt sich MultiDialog die Position der Dialogboxen, so daž sie an der Stelle erscheinen, an der Sie sie zuletzt positioniert haben. Im Gegensatz zu den bisher aufgefhrten M”glichkeiten, verh„lt sich "immer" nicht so. Hier erscheint die Dialogbox immer in der Mitte des Bildschirms, egal wo sie sich beim letzten Mal befand. Sollten Sie irgendwelche Probleme mit Dialogboxen haben, die nicht ganz sichtbar sind, weil sie z.B. aus dem Bildschirm ragen, stellen Sie hier "immer" ein. Dann wird die Routine benutzt, die auch ohne MultiDialog verwendet wrde. "Fenster bei: Alert|FormDial|FormDo": (Bedingungen, wann Fenster verwendet werden) Diese Schalter geben an, unter welchen Umst„nden ein Dialog in einem Fenster dargestellt wird. Ist "Alert" eingeschaltet, so erscheinen Alertboxen in einem Fenster. (Alertboxen sind daran zu erkennen, daž sie maximal 3 Kn”pfe und 5 Zeilen Text, sowie evtl. ein kleines Warnsymbol besitzen.) Alertboxen sollten eigentlich keine Probleme bereiten, weshalb dieser Schalter immer aktiviert sein kann. (Naja, mit dem Redraw gibt es manchmal doch Probleme, die aber rein optischer Natur sind.) Die beiden anderen Schalter beziehen sich nicht mehr auf Alertboxen, sondern auf Dialogboxen, welche ”fter Verwendung finden. Die Einstellung "FormDial" bietet die gr”žte Flexibilit„t, es gibt jedoch einen Umstand, der es n”tig macht, "FormDial" zu deaktivieren (s. Kapitel VI.). (Der Name stammt von der GEM-Funktion form_dial, mit der Dialogboxen angekndigt werden sollen.) Sollten Sie feststellen, daž nach Beendigung eines Dialogs das Fenster "tot" zurckbleibt und nicht gel”scht wird, so deaktivieren Sie bitte den Schalter "FormDial" und verwenden Sie stattdessen die Einstellung "FormDo", die dieses Problem nicht aufwirft. (Lesen Sie dazu auch das Kapitel VIII. "Fragen und Antworten".) Da es aužerdem einige Programme gibt, die keine form_dial-Aufrufe t„tigen, gibt es aužerdem noch die M”glichkeit, mittels "FormDo" auch diese in den Genuž von Fenstern kommen zu lassen. (mittels form_do k”nnen Programme einen Dialog bedienen lassen.) Dialogboxen, die erst durch die Einstellung "FormDo" in Fenster gelangen, sind allerdings nicht so bequem zu Bedienen, wie diejenigen bei denen "FormDial" gengt. Zum einen k”nnen deren Fenster nicht verschoben werden, zum anderen wird das Fenster zu Anfang jedes FormDo-Aufrufs ge”ffnet und bei dessen Ende geschlossen. Daraus resulieren zwei Nachteile: In vielen Dialogen kann der Benutzer Eintr„ge in der Dialogbox ber Pfeile o.„. scrollen (z.B. im IKONEN ANMELDEN Dialog der neueren Desktops, wobei dieser Dialog ein schlechtes Beispiel ist, wie weiter unten erl„utert wird). Jedesmal wenn ein neuer Eintrag angezeigt wird, muž das Fenster ge”ffnet und sp„ter wieder geschlossen werden. Zum einen ben”tigt das jedesmal relativ viel Zeit, zum anderen kann es passieren, daž dieser Dialog dabei von anderen Fenstern, die kurzzeitig aktiv werden, bermalt wird (was fr die Optik sicherlich nicht vorteilhaft ist). Der letztere Effekt kann evtl. mit der Einstellung bei "ObjcDraw bei FormDo" gelindert werden. Im Gegensatz zu FormDial-Dialogen k”nnen die Fenster der FormDo-Dialoge nicht verschoben werden! Es gibt noch eine dritte Art von Dialogen, n„mlich solche, die weder einen form_dial-, noch eine form_do-Aufruf benutzen. Das sind in der Regel solche, die bereits eine besondere Form der Dialogbehandlung anbieten (z.B. verschiebbare (sog. FlyDials) oder ber Tastatur bedienbare Dialoge). Diese k”nnen von MultiDialog nicht abgefangen und in Fenstern dargestellt werden. "ObjcDraw bei FormDo: Ja/Nein": (Inhalt der Dialogbox neuzeichnen) Diesen Schalter k”nnen Sie nur ver„ndern wenn bei "Fenster bei:" "FormDo" aktiviert ist, da sich diese Einstellung nur auf Dialoge bezieht, die bei einem form_do-Aufruf in ein Fenster umgeleitet wurden. Wie bereits oben erw„hnt k”nnen dabei Probleme auftreten, weil der Inhalt der Dialogbox durch andere Fenster bermalt wird. Da das in der Regel der Fall ist, sollte hier "Ja" eingestellt werden. Manche Dialogboxen enthalten jedoch Grafiken (z.B. Bilder, Farbverl„ufe), die MultiDialog nicht ber den GEM-Aufruf objc_draw rekonstruieren kann;