38 Version A.05.01.e
38.1 Wichtige Änderungen
- Unter Microsoft Windows hat sich die Setzung des Fokus beim Öffnen eines Kontextmenüs (Popup-Menüs) geändert. Siehe Kapitel „Windows NT / Windows XP“, Gnats 9920.
- Das checkbox Objekt besitzt das neue Attribut .navigation zur besseren Steuerung der Tastaturnavigation. Siehe Kapitel „Neues Attribut .navigation“.
- Unter Microsoft Windows unterstützt die Funktion "DM_Execute" bzw. die eingebaute Funktion "execute" nun auch den Wert "DM_EXE_maxwindow" bzw. "maxwindow" beim "windowtype" Parameter. Siehe Kapitel „Windows NT / Windows XP“, Gnats 10002.
- Der Editor wurde um die Möglichkeit der Definition eigener Werkzeuge und um eine Dateiverfolgung (Meldung, falls eine geöffnete Datei extern geändert wurde) erweitert. Siehe hierzu das Kapitel „Neuerungen im IDM Editor“ und das Handbuch „Editor“, Kapitel „Das Werkzeuge-Menü“, „Werkzeuge“, „Definition eigener Werkzeuge“ und für die Einstellungen zur Dateiverfolgung das Kapitel „Editierung“.
- Der Dialog Manager für die Windows XP Plattform unterstützt Windows 95 nicht mehr. Dieser Schritt wurde notwendig, damit der Dialog Manager für Windows XP (32 bit) unter WOW64 in einem MS Windows XP 64bit startet.
- Support für OpenMotif 2.3.0 um UTF-8 locales unter Linux (z.B. RHEL 4) nutzen zu können.
- Die Beschränkung früherer IDM Versionen unter Motif, dass bei Dialogboxen keine Menüs dargestellt werden konten, ist mit der 5-er Version entfallen. Die Darstellung erfolgt jetzt analog zu Microsoft Windows.
38.2 Neuerungen im IDM Editor
Im IDM Editor können jetzt auch eigene Werkzeuge definiert werden. Außerdem ist eine Benachrichtigung, ob geöffnete Dateien von anderen Programmen geändert wurden, möglich.
Hinweis
Diese Erweiterungen sind nicht im Dialog Manager für VMS verfügbar.
38.2.1 Werkzeuge
Der Editor erlaubt die Definition eigener Werkzeuge, die dazu dienen können beispielsweise einen externen Texteditor aufzumachen oder die bearbeitete Datei über ein anderes Programm weiterzubearbeiten.
Sobald externe Werkzeuge definiert sind wird im Hauptfenster das Menü „Werkzeuge“ sichtbar, unter dem dann die Werkzeuge aufrufbar sind.
Mittels der Schaltflächen Neu bzw. Löschen werden Werkzeuge angelegt bzw. gelöscht.
Die Schaltflächen Oben und Unten dienen zum Sortieren der Werkzeugliste und damit des Werkzeuge-Menüs im Hauptfenster.
Zu einem Werkzeug gehört dabei immer:
- Titel: ein Titel, der für die Anzeige im Werkzeuge-Menü verwendet wird
- Programm: der Pfad zum Programm
- Argumente: die vom Programm zu verwendenden Argumente
Die folgenden Platzhalter sind für die Argumente der Werkzeuge zulässig. Sie beziehen sich dabei auf die aktuell editierte Datei.
%P |
Pfadname (Laufwerk und Verzeichnis, ohne Dateiname) mit abschließendem ‘/’ oder ‘\’ |
%B |
Basisname ohne Endung (Ohne Pfad) |
%F |
Dateiname mit Endung (Ohne Pfad) |
%N |
Bezeichner des Dialogs/Moduls |
%D |
Ein auf 8 Zeichen gekürzter Dialog/Modul-Bezeichner |
%T |
Namen der Tracedatei, die für die Simulation verwendet wird |
Über den Punkt Dateiaktion ist auch konfigurierbar, ob vor dem Start des Werkzeugs eine Aktion mit den im IDM Editor editierten Dateien durchgeführt werden soll. Möglich ist hier, falls erforderlich, die Speicherung der gerade editierten Datei oder die Speicherung aller im IDM Editor modifizierten Dateien auszulösen.
Über die Modus-Auswahl kann die manchmal für MS Windows notwendige Unterscheidung zwischen normalen Windows-Anwendungen und Shell-Programmen vorgenommen werden.
Als Tastaturkürzel sind im Editor für die Werkzeuge die Funktionstasten F9 bis F12 zulässig, um das Werkzeug auf Tastendruck zugänglich zu machen.
38.2.2 Einstellungen zur Dateiverfolgung
Die Einstellungen zur Dateiverfolgung werden im Konfigurationsfenster des IDM Editors innerhalb der Registerkarte Editierung getroffen.
Dateimodifikation prüfen schaltet die periodische Prüfung geöffneter Dateien auf Veränderungen ein und aus.
Datei automatisch erneuern schaltet die Nachfrage, ob als geändert erkannte geöffnete Dateien nachgeladen werden ein und aus (falls im IDM Editor ebenfalls Änderungen vorgenommen wurden erfolgt in jedem Fall eine Nachfrage mittels einer Dialogbox).
38.3 Neues Attribut .navigation
Dieses Attribut ist nur am Checkbox-Objekt verfügbar und regelt die Art der Tastaturnavigation (Tab-Taste bzw. Cursortasten) und die Zugehörigkeit zu einer Tab-Gruppe.
38.3.1 Attribut .navigation
Identifikator
.navigation
Klassifizierung: |
Objektspezifisches Attribut |
Definition
Argumenttyp: |
enum |
C-Definition: |
AT_navigation |
C-Datentyp: |
DT_enum |
COBOL-Definition: |
AT-navigation |
COBOL-Datentyp: |
DT-enum |
Zugriff: |
get, set |
Dieses Attribut definiert den Navigationstyp der Tastaturnavigation am Checkbox-Objekt. Diese unterscheidet Objekte, über die mittels Tab-Taste navigiert wird und Objektgruppen (z.B. mehrere Radiobuttons oder Checkboxen) innerhalb derer die Navigation über die Cursortasten erfolgt.
Zulässige Werte sind:
navi_default |
Bisheriges Verhalten (default) |
navi_grouped |
Bildet mit andern Objekten, welche ebenfalls navi_grouped gesetzt haben, eine eigene Gruppe, innerhalb welcher die Tastaturnavigation über die Cursortasten erfolgt. |
navi_tab |
Das Objekt ist alleinstehend und somit über die Tab-Taste erreichbar. |
Dabei ist darauf zu achten, dass alle Objekte innerhalb einer Gruppe, d.h. alle Objekte, welche innerhalb eines Gruppierungsobjekts (z.B. groupbox, window) liegen, den gleichen Wert gesetzt haben.
38.4 Windows NT / Windows XP
-
Gnats 10036: Für die Anzeigezeit des .toolhelp Attributs (Tooltip) verwendet der IDM weiterhin die Standardeinstellungen von Microsoft Windows. Es stellen zwar andere Anwendungen, darunter Microsoft Office, den Tooltip länger dar; es gibt allerdings keinerlei Hinweise innerhalb der Styleguides zu sinnvollen Anzeigezeiten und es fehlt auch eine Systemeinstellung dafür.
Sollte eine längere Anzeige des Tooltip gewünscht sein, so kann dies jetzt in einer C-Funktion realisiert werden. Näheres hierzu entnehmen Sie bitte den Ausführungen zu Gnats 9945.
- Gnats 10033: Ein Mnemonic wird jetzt bei einer Änderung des Textes eines Objekts auf einen String ohne Mnemonic deaktiviert.
-
Gnats 10023: Beim Auslösen eines Accelerators erhält das Objekt, an welchem der Accelerator definiert ist, wieder den Focus.
Der Fehler wurde durch den fehlenden Fokuswechsel auf einen Defaultbutton und dem damit nicht ausgelösten deselect- bzw. modified-Ereignis an einem edittext Objekt bemerkt.
-
Gnats 10015: Wenn eine Dialogbox (Fenster mit .dialogbox = true) kein „Owner“ Fenster besaß und geschlossen wurde, wurde beim Schließen der Dialogbox kein anderes Fenster der Anwendung aktiviert. Jetzt wird ein, allerdings zufällig gewähltes, anderes Fenster der Anwendung ausgewählt. Das Problem konnte immer dann auftreten, wenn Dialogboxen nicht korrekt geschachtelt wurden bzw. wenn sie geöffnet wurden, ohne dass ein anderes Fenster der Anwendung sichtbar war.
Damit Fenster als Dialogboxen richtig funktionieren benötigen sie ein anderes Fenster der Anwendung, dem sie zugeordnet werden können. Aus diesem Grund sollte beim Öffnen einer Dialogbox immer ein anderes, sichtbares und sensitives, Fenster der Anwendung existieren. Dieses Fenster darf auch erst nach der Dialogbox geschlossen werden. Auch auf die richtige Schachtelung mehrerer Dialogboxen ist zu achten, das heißt, die zuletzt geöffnete Dialogbox muss als erste wieder geschlossen werden. Werden diese Regeln nicht beachtet kann es vorkommen, dass Fenster der Anwendung nicht automatisch wieder aktiviert werden oder dass Dialogboxen sogar hinter anderen Fenstern der Anwendung liegen.
Empfehlung
Wenn Fenster immer als direkte Folge von Benutzeraktionen geöffnet werden und das Schließen eines Fensters nur durch eine direkte Benutzeraktion an dem zu schließenden Fenster ausgelöst wird, werden die obigen Regeln nicht verletzt.
- Gnats 10013: Bei einem Fenster, welches rechts und links (.xauto = 0) bzw. oben und unten (.yauto = 0) angebunden ist und dessen Koordinaten in Rastereinheiten (.posraster = true) angegeben sind, wobei die Rastereinheit auf 1 gesetzt oder undefiniert ist, werden die Koordinaten beim Sichtbarmachen nicht mehr geändert. Außerdem behält ein solches Fenster jetzt beim Verschieben seine Größe.
- Gnats 10011: Bei einem sichtbaren und maximierten Fenster wird bei sichtbar bzw. unsichtbarschalten einer Statusbar (statusbar Objekt) die Größe des Arbeitsbereichs wieder angepasst. Ist das Fenster nicht maximiert, bleibt hingegen die Größe des Arbeitsbereichs gleich.
- Gnats 10010: Beim Löschen des markierten Bereichs mittels Cursorbewegung in einem edittext Objekt mit Format ertönt kein Beep mehr, wenn sich hierbei die Cursorpossition nicht ändert. Das Verhalten entspricht damit wieder den früheren Dialog Manager Versionen.
- Gnats 10003: Ein edittext Objekt, welches die Option .options[rtf] = true hat und einen nicht RTF Text im Attribut .content enthält, zeigt wieder den gesamten Text und nicht nur den ersten Buchstaben an.
-
Gnats 10002: Unter Microsoft Windows unterstützt die Funktion DM_Execute bzw. die eingebaute Funktion execute nun auch den Wert DM_EXE_maxwindow bzw. maxwindow beim windowtype Parameter. Hiermit kann die angegebene Anwendung maximiert gestartet werden.
Achtung
Die gestartete Anwendung muss diesen Parameter nicht beachten.
Wenn der exetype Parameter den Wert DM_EXE_shell bzw. exeshell besitzt, wird der Kommandointerpreter maximiert gestartet und nicht die Anwendung, die der Kommandointerpreter startet.
- Gnats 10001: Der Fokus wird wieder auf das Fokusobjekt eines eingedockten toolbar Objekts zurückgesetzt, wenn zwischenzeitlich ein anderes Fenster aktiv ist und danach das ursprüngliche Fenster mit dem toolbar Objekt wieder aktiviert wird. Beachten Sie dazu auch das Kapitel „Besonderheiten beim Focusing“ bei der toolbar in der „Objektreferenz“.
- Gnats 9995: Unter Microsoft Windows mit
Visual Styles
wurden Kindobjekte einer Toolbar falsch positioniert, wenn beim Sichtbarmachen des Vaterfensters die Toolbar automatisch in der Größe geändert wurde. Beobachtet wurde das Verhalten allerdings nur bei rechts oder unten angebunden Kindobjekten. - Gnats 9993: Kindobjekte mit .mapped = false führen in einer Layoutbox und in einer Splitbox nicht mehr zu leeren Bereichen.
-
Gnats 9992: Ein maximiertes Fenster ist nach dem Sperren und Entsperren des Computers durch den Benutzer komplett, einschließlich des Rahmens, zu sehen.
Bei Änderung der Taskbar Einstellungen werden unter Microsoft Windows Fenster unter Umständen so verschoben, dass sie komplett zu sehen sind. Dasselbe Verhalten kann auch beobachtet werden, wenn der Rechner vom Benutzer gesperrt und wieder entsperrt wird. Dies ist ein generelles Verhalten von Microsoft Windows und kann auch mit anderen Applikationen (MS Internet Explorer, Eingabeaufforderung (DOS-Box), MS Outlook, Notepad…) beobachtet werden. Auch ein maximiertes Fenster, dessen Größe eingeschränkt ist, wird auf diese Weise behandelt und damit verschoben.
- Gnats 9991: Der an einem notepage Objekt beim Sichtbarmachen zu beobachtende Zeichenfehler am unteren Rand ist beseitigt.
- Gnats 9990: Teilweise wurden kleinere Schriftarten als in der IDM 4-er Version gewählt. Dies ist auf ein Rundungsproblem zurückzuführen (es waren nur manche Schriftarten bei bestimmten Schriftgrößen betroffen) und behoben.
- Gnats 9988: Ein scrollbar Objekt ohne Pfeile (.arrows = false) erzeugt nun wieder scroll Ereignisse, wenn der Schieberegler verschoben wird.
- Gnats 9987: Bei einer Fokussetzung an einem sichtbaren, aber nicht sensitiven tablefield-Objekt (.focus := [I,J] bzw. .focus [I,J] := true) wird jetzt keine Fehlermeldung mehr in die Logdatei geschrieben.
- Gnats 9986: An einem tablefield-Objekt mit gesetztem .selstyle = extended kann die Selektion jetzt auch mit Shift +
Cursortasten
erweitert werden. -
Gnats 9981 und 9820: Wurde an einem treeview-Objekt bei einer Drag&Drop-Aktion bzw. beim Öffnen eines Kontextmenüs die Maustaste über einem Bereich, welcher keine Einträge enthält, losgelassen bzw. in diesen Bereich geklickt, so wurde fälschlicherweise ein Index von 1 anstatt keinem Index im paste- bzw. open-Ereignis geliefert.
Es ist unter Windows XP allerdings zu beachten, dass hier ein Eintrag fast über die gesamte Breite eines Treeview geht, auch wenn nur links ein kurzer Text dargestellt wird.
- Gnats 9979: Ein scrollbar Objekt mit .arrows = false (Slider) ist wieder bedienbar, wenn es insensitiv angelegt wurde und anschließend auf sensitiv gesetzt wurde.
- Gnats 9970: Das gegenüber der 4-er Dialog Manager Version verlangsamte Füllen des tablefield Objekts ist behoben. Insbesondere wird das tablefield Objekt nicht mehr neu gezeichnet, wenn der Inhalt einer Zelle außerhalb des sichtbaren Bereichs geändert wird.
-
Gnats 9967: Wenn ein radiobutton Objekt im insensitiven Zustand auf .active = true gesetzt wurde (dies gilt auch beim Anlegen des Objekts) und anschließend wieder sensitiv gemacht wurde (.sensitive ::= true;), dann wurde bei Navigation über die Tastatur (Tab-Taste) das erste radiobutton Objekt aktiviert.
Dasselbe Problem trat auch auf, wenn ein notepage Objekt mit der Maus aktiviert wurde.
Anmerkung
Unter Microsoft Windows wird das fokussierte radiobutton Objekt automatisch aktiviert. Aus diesem Grund sollte es vermieden werden, das aktive radiobutton Objekt insensitiv zu setzen.
Achtung
Sollte das aktive radiobutton Objekt insensitiv sein, dann wird der Fokus auf das nächste radiobutton Objekt gesetzt, wodurch dieses aktiviert wird.
- Gnats 9965: Die Toolhelp erscheint nun auch wenn sich die Maus über einem inaktiven Fenster befindet.
- Gnats 9963: Der Fokusrahmen innerhalb einer Zelle des tablefield Objekts wurde bisher über den Text gezeichnet. Da dies jetzt nicht mehr gewünscht ist, wird der Fokusrahmen nun am Rand der Zelle gezeichnet. Um den Platz für den Fokusrahmen zu reservieren, können die Attribute .xmargin[I] und .ymargin[I] auf 2 oder größer gesetzt werden.
- Gnats 9960: Bei einem statictext Objekt mit zentriertem Text (.alignment = 0) wird der rechte Rand des Fokusrahmens wieder richtig dargestellt. Außerdem wird der Fokusrahmen jetzt richtigerweise um den Text und nicht über den Text gezeichnet.
- Gnats 9958: Wenn beim Schließen einer Dialogbox das Fokusobjekt sofort geändert wurde, konnte es zu einer Laufzeitverletzung kommen. Dadurch wurde der Fokuswechsel nicht ausgeführt und das Objekt, welches vor dem Öffnen der Dialogbox den Fokus besaß, bekam den Fokus wieder (bzw. behielt ihn). Das Problem trat insbesondere bei Verwendung von querybox() und MDI Fenstern auf und ist behoben.
- Gnats 9953: Ein an ein tablefield Objekt mittels .editpos = true angebundenes edittext Objekt wird von einer Layoutbox und einer Splitbox wieder richtig behandelt und erscheint nicht mehr als eigenes Objekt bzw. als leerer Splitbereich.
- Gnats 9945: Die Funktion DM_GetToolkitData ist am setup Objekt um das Attribut .toolhelp erweitert worden. Siehe auch „Beispiel zu AT_toolhelp am setup Objekt“ im Handbuch „C-Schnittstelle - Funktionen“, Funktion DM_GetToolkitData.
- Gnats 9934: Der Microsoft „Testcontainer for ActiveX Controls“ stürzt beim Einbinden eines OLE Controls mit .mode = mode_server ab. Hierbei handelt es sich um einen Fehler im Microsoft Testcontainer, der, wie im Handbuch „OLE-Schnittstelle“, Kapitel „Hinweise zur Nutzung des Microsoft Testcontainers“ beschrieben, umgangen werden kann.
- Gnats 9925: An einem einzeiligen Edittext-Objekt lässt sich das Attribut .alignment wieder dynamisch ändern. Bei RTF Edittexten (.options[opt_rtf] = true) wird die Textausrichtung allerdings über die RTF-Formatierung bestimmt und nicht über das Attribut .alignment.
- Gnats 9921: Neues Attribut .navigation am Checkbox-Objekt eingeführt (siehe Kapitel „Neues Attribut .navigation“).
- Gnats 9920: Wenn ein Kontextmenü geöffnet wird, erhält jetzt das Objekt, an welchem das Kontextmenü (Popup-Menü) definiert ist, den Tastaturfokus. Ist dieses Objekt ein Gruppierungsobjekt (beispielsweise ein window oder groupbox Objekt), dann wird der Tastaturfokus auf das erste Kindobjekt, welches den Fokus erhalten kann, gesetzt. Allerdings wird der Tastaturfokus nur umgesetzt, wenn das Objekt, an dem das Kontextmenü definiert ist, oder eines der direkten oder indirekten Kindobjekte nicht schon den Tastaturfokus besitzen.
-
Gnats 9900: Beim Sichtbarmachen eines notebook Objekts ohne explizit aktiv gesetztes notepage Kindobjekt wird jetzt wieder der Inhalt des notepage Objekts dargestellt, dessen Reiter aktiv ist und nicht der Inhalt des initial sichtbaren notepage Kindobjekts.
Dabei ist folgendes zu beachten
In einem notebook Objekt ist immer genau ein Kindobjekt, also ein notepage Objekt, aktiv (Np.active = true). Solange das notebook Objekt unsichtbar ist (.real_visible = false), ist dies entweder das erste notepage Kindobjekt oder das zuletzt aktiv gesetzte notepage Kindobjekt.
Sobald das notebook Objekt sichtbar ist, dürfen nur noch die ebenfalls sichtbaren notepage Kindobjekte aktiv gesetzt werden. Wird hingegen ein nicht sichtbares notepage Kindobjekt eines sichtbaren notebook Objekts aktiv gesetzt (Np.active ::= true) geht diese Setzung verloren. Unter Umständen wird dabei sogar ein Fehler (.active darf nicht auf false geändert werden) für ein sichtbares notepage Kindobjekt in das Tracefile geschrieben.
Vor dem Sichtbarmachen eines notebook Objekts muss also immer zuerst das aktiv gesetzte notepage Kindobjekt sichtbar (Np.visible ::= true) gesetzt werden und es darf nur ein aktives notepage Kindobjekt geben. Ist beim Sichtbarmachen des notebook Objekts kein sichtbares notepage Kindobjekt vorhanden, so ist das Verhalten undefiniert und kann sich zwischen verschiedenen Versionen und Patches unterscheiden; es wird irgendein sichtbares notepage Kindobjekt aktiviert werden.
- Gnats 9886: In einem mehrzeiligen RTF-Edittext (edittext Objekt mit options[opt_rtf] = true) werden .startsel und .endsel wieder richtig und nicht mehr teilweise falsch (verschoben) dargestellt.
- Gnats 9882: Durch eine Fehlerkorrektur hatte sich die Berechnung der bevorzugten Größe und der Positionierung geändert. Da dies Probleme mit vorhandenen Dialogen brachte, wurde die Kompatibilität zur 4-er Version des Dialog Managers wieder hergestellt.
- Gnats 9869: Bei aktiven
Visual Styles
kam es, bei sehr vielen ineinandergeschachtelten Gruppierungsobjekten, zu einem sehr langsamen Neuzeichnen der inneren Objekte. Wenn diese inneren Objekte noch eine Hintergrundfarbe besaßen, konnte zusätzlich ein Flackern beobachtet werden. Sowohl die schlechte Performance als auch das Flackern sind behoben. -
Gnats 9849: Es konnten keine reinen Shell Kommandos mittels DM_Execute bzw. execute mehr ausgeführt werden, da das Kommando immer automatisch mit doppelten Anführungszeichen eingeschlossen wurde.
Erweiterung
Unter Microsoft Windows wird bei Verwendung der Funktion DM_Execute bzw. execute zur Vereinfachung der Command Parameter automatisch mit doppelten Anführungszeichen eingeschlossen, wenn dieser Parameter Leerzeichen aber keine doppelten Anführungszeichen enthält. Zusätzlich muss hier der ExeType Parameter auf den Wert DM_EXE_normal bzw. exenormal oder DM_EXE_shell bzw. exeshell gesetzt werden.
Außerdem werden jetzt auch aus dem command und args Parameter zusammengesetzte Kommandos automatisch mit Anführungszeichen eingeschlossen, wenn der Command Parameter mit doppeltem Anführungszeichen (schon angegeben oder automatisch hinzugefügt) beginnt und der exetype Parameter den Wert DM_EXE_shell bzw. exeshell besitzt.
Sollte dieses Verhalten nicht gewünscht sein, so kann der Command Parameter leer (null oder "") und das eigentlich auszuführende Kommando (in diesem Fall zwingend) im Arguments Parameter übergeben werden.
- Gnats 9839: Der Wert des Attributs .activeitem am spinbox Objekt ist jetzt aktuell, wenn es aus einer ‚on charinput’ Ereignisregel des Kindobjekts der Spinbox abgefragt wird. Bitte beachten Sie dabei auch die Hinweise im Kapitel „Spezifische Attribute“ bei der spinbox in der „Objektreferenz“.
- Gnats 9833: Das checkbox und das radiobutton Objekt beachten in der Windows XP Version des Dialog Managers nun die Setzung einer Hintergrundfarbe (.bgc).
-
Gnats 9808: Der untere Abstand eines angezeigten Bildes im poptext Objekt war deutlich größer als der obere Abstand. Dies ist behoben. Allerdings wird das durch die Attribute .picwidth und .picheight angegebene Rechteck weiterhin links oben im Darstellungsbereich fixiert, um ein konsistentes Verhalten zu den anderen Dialog Manager Objekten zu gewährleisten.
Dabei ist zu beachten, dass die Position und die Größe des Darstellungsbereichs durch das Windows Objekt vorgegeben sind und somit je nach Version der Common Control DLL ein unterschiedlich breiter Zwischenraum sichtbar ist.
- Gnats 9793: Beim Aufruf der execute Funktion in der Regelsprache kommt es bei richtiger Verwendung des ExeType Parameters nicht mehr zu einer Fehlermeldung im Tracefile.
- Gnats 9780: Eine Cursorsetzung wirkt sich beim toolbar Objekt wieder auf den Griffbereich (Abreißleiste) aus.
-
Gnats 9767: Mehrere Probleme mit dem Hintergrundmuster (.tile Attribut) an Gruppierungsobjekten wurden behoben
- Ein durchsichtiges Hintergrundmuster sah schlecht aus. Dieses Problem existiert nicht mehr, da der Inhaltsbereich von Gruppierungsobjekten inzwischen per Definition undurchsichtig ist.
- Ein zentriertes (.tilestyle = tilestyle_centered) oder ein in der Größe angepasstes (.tilestyle = tilestyle_stretched) Hintergrundmuster wurde in einem splitbox Objekt nur einmal dargestellt. Nun wird es in jedem Splitbereich einmal dargestellt.
- Gnats 9725: Ein Fehler, der vermutlich auf das Vorhandensein eines splitbox Objekts in einer selbst definierten Dialogbox zurückzuführen ist, kann seit der Version A.04.04.g nicht mehr nachvollzogen werden.
- Gnats 9686: Ein Fenster, welches geöffnet wurde während eine „topmost“ Dialogbox geöffnet war, wurde selbst auf topmost gesetzt. Dieser Fehler wurde bereits zur Version A.04.04.k behoben.
- Gnats 9674: Es konnte zum herausschreiben einer „ASSERTION FAILED“ Meldung in die Logdatei kommen, wenn ein splitbox Objekt das zweite Mal sichtbar gesetzt wurde. Dieses Verhalten tritt seit der Version A.04.04.g nicht mehr auf.
- Gnats 9657: Die Methode :setformat() an einem RTF-Edittext (edittext Objekt mit .options[opt_rtf] = true) setzt wieder die richtige Schriftart.
- Gnats 9594: Der nicht durch ein toolbar Objekt verdeckte Toolbarbereich eines Fensters wurde unter Windows XP mit einer dunkleren Farbe als die toolbar Objekte, die Menüzeile oder der Fensterhintergrund. Das Problem lag an der Verwendung der Systemfarbe für den Hintergrund von 3D Objekten. Diese Farbe ist unter Windows 2000 identisch zur Systemfarbe des Fensterhintergrunds, welche für den Toolbarbereich verwendet wurde. Unter Windows XP ist die Systemfarbe für den Fensterhintergrund allerdings dunkler definiert als unter Windows 2000, wodurch das Problem auftrat. Jetzt wird als Toolbarbereichshintergrundfarbe die Systemfarbe für den Hintergrund der Menüzeile verwendet.
- Gnats 9445: Das treeview Objekt beachtet seit der Korrektur zu Gnats 9673 auch wieder die .fgc Setzungen.
- Gnats 9428: Ein Aufflackern eines Mini-Fensters bei Nutzung der RTF-Methoden an einem unsichtbaren RTF-Edittext (edittext Objekt mit .options[opt_rtf] = true) tritt nicht mehr auf.
- Gnats 9424: Der Text im Editierfeld des poptext Objekts (bei .style <> poptext) wird nicht mehr weiter rechts dargestellt als bei einem eigenständigen Edittext Objekt.
- Gnats 9394: Die IDMuser.h enthält jetzt Schlüsselwörter für die verwendete Aufrufkonvention der IDM Schnittstellenfunktionen. Hierdurch kommt es nicht mehr zu unresolved externals, wenn beim Kompilieren über eine Kommandozeilenoption eine andere Aufrufkonvention vorgegeben wird.
-
Gnats 9366: Die eingebaute Funktion beep() ermöglicht jetzt auch die Eingabe einer Tonhöhe und Tondauer.
Unter Microsoft Windows wird jetzt auch die eingebaute Funktion beep() mit 3 Parameter unterstützt: beep(volume, duration, frequency); dabei wird der Parameter Volume allerdings ignoriert. Der Parameter frequency muss im Bereich von 37 .. 32767 liegen.
Unter Microsoft Windows 95, 98 und ME wird lediglich ein Standardton ausgegeben.
- Gnats 9217: Ein Absturz bei der Darstellung eines animierten GIF-Bildes in einem listbox Objekt kommt seit der Version A.04.03.c nicht mehr vor, da hier die Verwaltung der tile Ressourcen grundlegend geändert wurde.
-
Gnats 8773: Wenn an einem filerequestor Objekt die Attribute .style = fr_directory und .changedir = true gesetzt waren, wurde die Auswahlmöglichkeit auf das Verzeichnis eingeschränkt, welches das ausgewählte Verzeichnis enthielt. Dies hatte zur Folge, dass nach einem Wechsel in ein Unterverzeichnis nicht mehr zum Ursprungsverzeichnis zurücknavigiert werden konnte.
Änderung
Das Attribut .directory am filrequestor Objekt beschränkt die Auswahl bei .style = fr_directory nur noch dann, wenn das Attribut .changedir den Wert false besitzt. Ansonsten (.changedir = true) ist die Verzeichnisauswahl unbeschränkt und das Verzeichnis, welches im Attribut .directory angegeben ist, wird vorselektiert.
- Gnats 8584: Das filerequestor Objekt wird auch dann wieder modal geöffnet, wenn das Attribut .style den Wert fr_directory besitzt.
- Geändert: Der Dialog Manager für die Windows XP Plattform unterstützt Windows 95 nicht mehr. Dieser Schritt wurde notwendig, damit der Dialog Manager für Windows XP (32 bit) unter WOW64 in einem MS Windows XP 64bit startet.
- Behoben: Bei einem oben und unten (.yauto = 0) bzw. links und rechts (.xauto = 0) angebundenen Fenster konnte ein Absturz auftreten, wenn die Abstände zu den Rändern so definiert waren, dass der Arbeitsbereich zu klein bzw. negativ wurde. Dies ist behoben.
- Behoben: Ein Speicherleck, welches beim Ausschneiden eines Textstrings bei einem edittext Objekt mit Format auftrat, ist behoben.
- Behoben: Im tablefield Objekt werden bei Änderungen wieder nur die notwendigen Zeilen neu gezeichnet und nicht mehr der gesamte Inhalt.
- Behoben: Die Werte für .real_height und .real_width des statusbar Objekts werden auch bei .borderwidth > 0 wieder richtig berechnet.
- Behoben: Die Koordinaten eines rectangle Objekts werden bei Änderungen von .borderwidth wieder aktualisiert.
- Behoben: Es konnte vorkommen, dass die Objekte Layoutbox, Notebook, Spinbox, Splitbox und Window unnötigerweise aktualisiert wurden, was zu einem Flackern der Objekte führen konnte. Jetzt erfolgt eine Aktualisierung der betreffenden Objekte nur noch dann, wenn ein direktes Kindobjekt geändert wird.
38.5 Motif
-
Neu: Support für OpenMotif 2.3.0 um UTF-8 locales unter Linux nutzen zu können.
Bemerkung
Die Einbettung von Motif-Anwendungen in die Desktopumgebungen KDE bzw. Gnome ist immer noch schlecht, so dass meist keine ISO 10646 – Defaultfonts benutzt werden. Eine explizite Setzung der Fonts im Dialog ist also weiterhin sinnvoll! Da OpenMotif nicht zur Standarddistribution von RHEL4 oder SUSE10 gehört, ist OpenMotif 2.3 selbst nachzuinstallieren.
- Gnats 10019: Dialogboxen (Fenster mit .dialogbox = true) mit Menüs werden nun in der korrekten Größe initial sichtbar gemacht und nicht fälschlicherweise verkleinert. Außerdem ist die Beschränkung früherer IDM Versionen, welche unter Motif bei Dialogboxen keine Menüs darstellten, mit der 5-er Version entfallen. Die Darstellung erfolgt jetzt analog zu Microsoft Windows.
- Gnats 9367: Die Setzung der Größe und die Positionierung eines tabelfield Objekts (und dessen zur Editierung verwendeten edittext Objekts) funktioniert wieder korrekt, auch wenn die automatische Größenberechnung (.xauto = 0 oder .yauto = 0) genutzt wird.
- Bekanntes Problem: Unter SGI IRIX kann es im Zusammenhang mit dem poptext Objekt (Combobox) zu einem Absturz kommen. Dies ist auf ein Problem in IRIX zurückzuführen und wurde von SGI mit dem Bugfix 650738 (ab IRIX 6.5.28m) behoben.
- Behoben: Eine Dialogbox mit einer sichtbaren Toolbar wird wieder dargestellt und erzeugt keinen X-Fehler mehr.
- Behoben: Das dynamische Ändern des Titels einer sichtbaren Dialogbox funktioniert wieder.
- Behoben: Nach einer Größenänderung eines Gruppierungsobjekts mit virtueller Größe ist die Position bzw. die Größe des Scrollbarsliders wieder korrekt, auch wenn vor der Größenänderung .xorigin oder .yorigin umgesetzt wurden.
- Behoben: Die Attribute .minsize bzw. .maxsize werden für Kinder einer Splitbox jetzt auch initial berücksichtigt.
- Behoben: Der DM_GetToolkitData()-Aufruf mit AT_XTile bzw. AT_XColor liefert immer nur das tile bzw. die color des default Screen zurück (siehe auch Kapitel „Multiscreen Support unter Motif“ im Handbuch „Programmiertechniken“).
38.6 Kern
- Gnats 10044: Bei der Verwendung von return, pass oder throw wird vorher allokierter dynamischer Speicher für die Ausdrucksauswertung jetzt korrekt freigegeben.
- Gnats 10024: Das Herausschreiben von Binärdateien, welche über ‚export import’ Konstrukte Module anziehen, erfolgt wieder korrekt und verursacht keinen „Name of import must be unique“ Fehler mehr.
-
Gnats 10018: Der Dialog Manager unterscheidet bei !!-Kommentaren, welche vor Attributen gesetzt werden, nicht zwischen Attribut-Deklaration und Defaultwert-Zuweisung, da diese bei einer Ausgabe ohnehin in einer Zeile stehen.
Im Gegensatz zu den Vorgängerversionen werden nun !!-Kommentare für das gleiche Attribut zusammengeführt, so dass z.B. alle Kommentare von Mehrfachsetzungen als auch getrennte Deklarations- und Defaultwertsetzungen zusammen mit dem letzten Wert erhalten bleiben.
Vorsicht ist bei Kommentaren zu shadow-Attributen gegeben. Diese Kommentare können nur für die Attributdeklaration erhalten werden, da der eigentliche Wert meist an einem anderen Objekt gespeichert wird.
- Gnats 10012: Das binäre Herausschreiben von Modellen und Instanzen der document und transformer Objekte wird jetzt in der richtigen Reihenfolge vorgenommen. Damit sind Modelle der mapping Objekte, welche im selben Modul wie von Ihnen abgeleitet Instanzen vorkommen, wieder nutzbar.
- Gnats 9984: Eine Dialogbox, welche mittels der Builtinfunktion querybox() geöffnet wurde konnte durch die Builtinfunktion closequery() nicht geschlossen werden, wenn closequery() innerhalb einer on extevent oder on <Attribute> changed Regel aufgerufen wurde. Die Dialogbox wurde erst nach einem Dialogereignis geschlossen. Dieses Verhalten ist behoben.
-
Gnats 9975: Kindobjekte mit .posraster = true wurden im layoutbox Objekt verschoben positioniert. Dies konnte dazu führen, dass Kindobjekte sich komplett überlappten, wenn die Größe des Kindes kleiner als das Positionsraster war. Im beschriebenen Fall hatten die Kindobjekte keine Höhe (.height = 0) und die bevorzugte Höhe war kleiner als die Rasterhöhe. Da das layoutbox Objekt die Position der Kindobjekte in Pixel bestimmt, wird jetzt .posraster der Kindobjekte in einer Layoutbox auf false gesetzt.
Ein gerastertes Layout innerhalb des layoutbox Objekts wird nicht unterstützt.
- Gnats 9921: Das Objekt Checkbox ist um das Attribut .navigation erweitert worden siehe Kapitel „Neues Attribut .navigation“ und „Attributreferenz“).
- Gnats 9702: Das subcontrol-Objekt kann jetzt ebenfalls die hierarchischen Attribute (.window, .control, .notepage, .layoutbox, .toolbar, groupbox) nutzen.
- Gnats 8641: Beim Versuch eines Sichtbarmachens eines Objekts (hier: Edittext) direkt unterhalb eines Moduls (also ohne Fenster!) tritt nun kein Assfail mehr auf.
- Behoben: Die virtuelle Größe eines layoutbox Objekts mit eingeschaltetem Sizeraster wird wieder richtig berechnet.
- Behoben: DM_CreateObject akzeptiert nun NULL als Vater-Objekt beim Anlegen eines dialog Objekts.
38.7 Editor
- Gnats 10018: Das Problem mit verlorenen Kommentaren an benutzerdefinierten Attributen ist behoben. Bitte beachten Sie auch Kapitel „Kern“, Gnats 10018 (Detailbeschreibung).
- Gnats 10017: Eine Endlosschleife und die daraus resultierende Unbedienbarkeit des Editors bei der Selektion von Regeln oder Methoden im Objektbrowser ist behoben.
- Gnats 10009: Eine Doppelauflistung von Menü-Kindobjekten einer Menübox im ‚Kinder ordnen’ dialog ist behoben.
- Gnats 10008: Eine Duplizierung von Objekten erzwingt nicht mehr die Eingabe eines Bezeichners sondern bietet diese nur noch an.
- Gnats 10007: Bei aktiver Dateiverfolgung haben Dateiänderungen nach Sichtbarwerden des ‚Nachladen’-Fragedialogs keine erneuten Fragen zur Folge.
- Gnats 10006: Beim Bearbeiten eines Fensters mit .dialogbox = true wird das Attribut nicht mehr auf false umgesetzt.
- Gnats 10004: Der Absturz bei Zuweisung einer tile Ressource an ein notepage Model ist behoben.
- Gnats 10000: Nach Schließen einer Fehlermeldung zu einer gerade eben erstellten und mittels ‚Zuweisen’ abgeschlossenen Regel ist der Focus (und damit der Mauscursor) wieder im Regelbereich (Editierfeld) der Eigenschaften Toolbar.
- Gnats 9999: Im IDM Editor unter Windows kam es zu einem Absturz, wenn beim Verschieben eines Objekts mit der Maus die Pfeile, welche eine notebook Objekt bei vielen, teilweise nicht mehr sichtbaren Reitern darstellt, gefahren wurde. Dies ist behoben.
- Gnats 9996: Der Pushbutton für den externen Editor (‚Ext. Editor’) im Regelbereich der Eigenschaften-Toolbar wird wieder korrekt sensitive gesetzt (falls in der Konfiguration ein externer Editor eingetragen ist). Gleiches gilt für die Aktualisierung des Menüs .
- Gnats 9994: Die ‚Zuweisen’/’Abbrechen’ Pushbutton im Regelbereich der Eigenschaften-Toolbar werden beim Wechsel des Regelpuffers wieder korrekt aktualisiert. Dadurch können jetzt wieder Regeländerungen an zwei Regeln gleichzeitig durchgeführt werden.
- Geändert: Der Editor erzwingt beim Simulationsstart nicht mehr die Minimierung von Kindfenstern, was einen schnelleren Start der Simulation bei großen, modularisierten Dialogen zur Folge hat.
- Gnats 9983: Der Editor wurde um die Möglichkeit der Definition eigener Werkzeuge und um eine Dateiverfolgung (Meldung, falls eine geöffnete Datei extern geändert wurde) erweitert. Siehe hierzu das Kapitel „Neuerungen im IDM Editor“ und das Handbuch „Editor“, Kapitel „Das Werkzeuge-Menü“, „Werkzeuge“, „Definition eigener Werkzeuge“ und für die Einstellungen zur Dateiverfolgung das Kapitel „Editierung“ (nicht für Dialog Manager unter VMS).
- Gnats 9859: Die Editorunterstützung für notbook/notepage Objekte ist unter Microsoft Windows verbessert worden. Es kann jetzt ein notepage Objekt mittels Strg +
Klick
auf den Reiter selektiert und bei Strg +Doppelklick
auf den Reiter die Eigenschaften-Toolbar geöffnet werden. - Gnats 9720: Ein innerhalb des Arbeitsbereichs maximiertes Fenster wird unter Microsoft Windows wieder mit der Titelleiste gezeichnet und kann somit wieder minimiert werden. Außerdem werden jetzt MDI Fenster unterstützt.
-
Gnats 9220: Die Unterstützung für das splitbox Objekt unter Motif wurde verbessert.
Unter anderem wurde durch Umleitung der Resize/Moving Cursor von direkten Kindern der Splitbox auf die Splitbox selbst es ermöglicht, dass das splitbox Objekt jetzt auch verschoben oder in der Größe geändert werden kann.
- Gnats 8624: Die Größe der Dateihistorie ist jetzt über das Konfigurationsfenster auf der Speichern Seite zwischen 4 und 99 Dateien einstellbar.
- Behoben: Das Drücken und Loslassen des Resize-Buttons an einem Fenster führt unter Motif nicht mehr zu einer Verschiebung des Fensterobjekts.
- Behoben: Unter MS Windows konnte ein weiteres Objekt in ein spinbox Objekt geschoben werden, obwohl das spinbox Objekt schon ein Kindobjekt besaß, was zu einer fensterfüllenden Darstellung des in das spinbox Objekt neu hineingeschobenen Objekts führte.
38.8 Netzwerk
- Gnats 9761: Wenn auf einem Rechner mehrere Netzwerkverbindungen konfiguriert waren, wurde unter Umständen eine falsche IP-Adresse für eine ‚.exec’-Verbindung übermittelt. Um dies zu Vermeiden wird jetzt zunächst eine Verbindung zum ‚rexecd’ Service geöffnet und dann die lokale IP-Adresse dieser Verbindung bestimmt.
-
Gnats 9141: Beim Aufbau einer Netzwerkverbindung mittels .exec durfte das Passwort keinen Doppelpunkt enthalten.
Um einen Doppelpunkt vor dem syntaktisch vorgeschriebenen Doppelpunkt zu verwenden (im Name oder Passwort) muss dieser verdoppelt werden. Im Kommandoteil des .exec Attributes (nach syntaktisch vorgeschriebenen Doppelpunkt) werden Doppelpunkte direkt übernommen.
38.9 COBOL-Interface
- Gnats 9977: Unter COBOL als PIC 9(4) definierte Parameter wurden beim Aufruf einer COBOL-Funktion aus der Regelsprache falsch übergeben. Das Problem trat jedoch nur auf Architekturen auf, auf denen die Byteorder 4321 ist und ist behoben.
-
Gnats 9804: Nach einer Initialisierung einer DM-Value-Struktur von der COBOL Seite aus konnte die IDM COBOL Schnittstellenfunktionen Strings nicht mehr auswerten, da der DM-value-string-size auf 0 gesetzt wurde und somit alle Strings als Leerstrings angesehen wurden. Eigentlich sollte niemals eine Initialisierung aus COBOL erfolgen (es sei denn durch Aufruf der entsprechenden DM Funktionen). Aus Kompatibilitätsgründen (z.B. zur A.04.02.h) wird jetzt jedoch automatisch die Standardlänge von 80 verwendet, wenn 0 als Stringlänge angegeben wurde.
Das DM-value-string-size Element der DM-Value-Struktur ist ein internes Feld und daher auf keinen Fall direkt zu ändern.
38.10 Unix
- Neu: RHEL 4 (Kernel 2.6.9, 32 Bit, gcc 3.4.5) mit OpenMotif 2.2.3 ist als neue Plattform verfügbar. Dabei ist allerdings OpenMotif 2.2.3 selbstständig nachzuinstallieren, da es nicht zum Standardumfang der Distribution gehört.
- Neu: RHEL 4 (Kernel 2.6.9, 32 Bit, gcc 3.4.5) mit OpenMotif 2.3.0 ist als neue Plattform verfügbar. Dabei ist allerdings OpenMotif 2.3.0 selbstständig nachzuinstallieren, da es nicht zum Standardumfang der Distribution gehört.