The ISA Dialog Manager is a powerful tool for dialog creation with numerous features and options. Since 1987, many developers have been working with the IDM to create applications that users rely on daily.
Some things are very easy to do with the Dialog Manager, but sometimes it can get quite tricky.
Test your knowledge with our Quiz!
Operation
Once you start the quiz, you must answer the questions in order. There are multiple-choice questions and questions where you must choose one answer. You have a total of 10 minutes to answer all the questions.
Here's what you can win:
After the quiz questions have been evaluated, you can check your answers again. This might help you learn something new if you answered questions incorrectly in a topic you don't have much experience with.
Am Ende erhalten Sie ein Zertifikat über die Teilnahme an dem Quiz. Außerdem verlosen wir unter den erfolgreichen Quizteilnehmer wertvolle Preise wie z.B. ….
Start the quiz now and check if you are well-versed in all topics or if a training course might be appropriate.
Report a question
You have 10 minutes for the quiz.
Time is over!
IDM Knowledge Quiz
How well do you know the IDM?
1 / 56
Category:
Programming Interfaces
1. Welche Arten von Schnittstellenfunktionen gibt es?
Choose all correct answers!
This answer is unfortunately incorrect.
Richtig ist:
Format-Funktion: Diese dient dazu eigene Editierformate für das edittext Objekt zu implementieren.
Anwendungsfunktion: Dies ist die üblicherweise benutzte Funktion. Bei der Deklaration können bis zu 16 Aufrufparameter festgelegt werden.
Record-Funktion: Dies ist eine spezielle Form der Anwendungsfunktion, die mindestens einen Record-Parameter besitzt.
Objektcallback-Funktion: Diese Funktion wird manchmal auch Eventhandler-Funktion genannt. Sie wird aufgerufen wenn bestimmtes Ereignisse aufgetreten ist.
Fehlerhandler-Funktion: Der Fehlerhandler muss mittels DM_ErrorHandler installiert werden und wird im Fehlerfall aufgerufen.
Falsch ist:
Scroll-Funktion: Diese Funktion, die zum Beispiel aufgerufen wird wenn ein groupbox Objekt gescrollt wird, gibt es nicht.
IDM-Funktion: Der Name wird nicht verwendet.
List-Funktion: Diese Funktion gibt es nicht, auch wenn es Canvas-, Format- und Record-Funktionen gibt.
Toolkit-Funktion: Es gibt zwar DM_GetToolkitDataEx and DM_SetToolkitData aber keine Toolkit-Funktion.
2 / 56
Category:
Programming Interfaces
2. Was ist bei Funktionen, die Record-Parameter besitzen zu beachten?
record MyRec {
string Name := "Rec";
}
function void MyFunc(record MyRec);
Choose all correct answers!
This answer is unfortunately incorrect.
Richtig ist:
+writetrampolin: Die erzeugten Quelldateien müssen kompiliert und zu der Anwendung gebunden werden. Die Headerdateien sollten verwendet werden.
+writeheader: Die erzeugte Headerdatei enthält außer den Funktionsdeklarationen auch Deklarationen für die record Strukturen.
Abbildung record auf Datenstruktur: Vor dem Aufruf einer Record-Funktion wird der Inhalt des record Objektes in eine Datenstruktur kopiert. Die genaue Definition dieser Datenstruktur ist in der erzeugten Headerdatei abgelegt, deshalb müssen die Headerdateien verwendet werden.
Falsch ist:
Es gibt nichts zu beachten: Die Übergabe eines record Objektes an die Anwendung erfordert zusätzliche Konvertierungen, so dass Record-Funktionen anders behandelt werden müssen.
3 / 56
Category:
Eclipse plugins
3. Kann man mit dem Eclipse Plugin Fehler im Dialog finden?
Choose all correct answers!
This answer is unfortunately incorrect.
Mit der Option IDM Debugger Plugin kann man den Ablauf jederzeit mit einem Breakpoint unterbrechen, Variablen und Ausdrücke inspizieren und ggf. zur Laufzeit ändern.
Features:
Code editor with syntax highlighting, source code formatting, and content assistant with suggestions for additions.
Jump to the declaration, to the model, to the parent object, etc.
Views for dialog structure and model hierarchy.
Easily start the IDM syntax check and jump to error locations.
Konfigurierbare, erweiterbare und kontextsensitive Hilfe.
4 / 56
Category:
Rule Language
4. Vervollständigen die Codestelle ??? um dem Listbox-Inhalt mit "Zeilennummer" zu versehen ohne Ereignisse zu erzeugen!
on Listbox select
{
variable integer I;
variable string NewContent;
for I:= 1 this.itemcount do
NewContent:= itoa(I)+": "+this.content[I];
???
endfor
}
This answer is unfortunately incorrect.
this.content[I] := NewContent;
Damit wird für jede Zeile ein .content -Changed-Ereignis erzeugt
setvalue(this, .content, NewContent, I, false);
Richtig der SendEvent-Parameter wurde mit false belegt.
setinherit(this, .content, I, NewContent);
Diese Schreibweise ist JavaScript und keine Regelsprache
this:set(.content, NewContent, I);
Der letzte Parameter ist standardmäßig true , was zu Erzeugung von .content- Changed-Ereignissen führt.
this.content[I] := NewContent; updatesceen();
Zusätzlich zur Antwort 1) kommt es noch zum Flackern wegen der sofortigen Aktualisierung der Anzeige.
this.content[I] ::= NewContent;
So gehts richtig! ::= Ist die Kurzschreibweise für eine Zuweisung ohne Ereigniserzeugung.
5 / 56
Category:
Graphical Editor
5. Wie kann die mehrsprachige Text-Ressource TxMyTitle als Titel eines Fenster in der Eigenschaftenseite des IDMED angeben werden?
Choose the correct answer!
This answer is unfortunately incorrect.
Bei allen Text-Eingabefeldern im IDMED lassen sich Text-Ressourcen mit vorangestelltem @ referenzieren.
6 / 56
Category:
Options
6. Welche der folgenden Aussagen sind richtig?
Choose the correct answer!
This answer is unfortunately incorrect.
Richtig ist:
Fehlermeldung doppelt: Es gibt zwei Möglichkeiten eine OLE-Methode aufzurufen. Wenn die erste Variante fehlschlägt wird auch die zweite versucht. Wenn beide fehlschlagen werden auch beide Fehlermeldungen ausgegeben, denn die können sich unterscheiden.
Falsch ist:
Kind eines Gruppierungsobjektes: Je nachdem was angebunden wird, kann ein Gruppierungsobjekt als Parent nötig sein oder auch nicht.
Exakte Übereinstimmung Datentypen: Alle Argumente einer OLE-Methode besitzen eine Datentyp ähnlich zu anyvalue. Dieser Datentyp wird, wenn es irgendwie möglich ist gewandelt.
7 / 56
Category:
Objects, resources, and attributes
7. Wozu dient das Attribut .text ?
Choose all correct answers!
Sadly your answer is wrong.
Der eingegebene Text eines edittexts verwendet das Attribut .content , in einer treeview werden die Texte in .content[] definiert.
Das Attribut ist bei den Objekten image, notepage, doccursor and statictext verfügbar. Das Attribut .text einer notepage wird nicht von allen Toolkits unterstützt.
8 / 56
Category:
Geometry
8. Welche Definitionen sind zur Anpassung von Rasterkoordinaten empfehlenswert?
dialog MyDlg
font MyFont "UI_FONT" /* Spezifikation aus Frage */;
default pushbutton {
.font MyFont;
.posraster true;
.sizeraster true;
.width 8;
.height 4;
.text "Pb @";
}
window MyWnd {
.reffont MyFont;
.width 200;
.height 100;
.title "Reffont";
on close {
exit();
}
pushbutton MyPb1 {
.ytop 0;
}
pushbutton MyPb2 {
.ytop 5;
}
}
Choose all correct answers!
This answer is unfortunately incorrect.
Bei der Breitenberechnung die Schriftart wird der Referenzstring herangezogen. Dadurch wird bei einer Änderung des Schriftart die richtige Größe ermittelt. Voraussetzung ist natürlich, dass der Referenzstring dem erwarteten Buchstabenverhältnis entspricht.
Mit Hilfe eines Divisors kann ich die Umrechnung der Schrifthöhe in Pixel beeinflussen.
Durch die Verwendung eines layoutbox Objektes kann man die Höhe der einzeiligen Kindobjekte auf 0 setzen, so dass sie selbst ihre optimale Höhe bestimmen. Den Zwischenraum kann ich unabhängig von der Schriftart setzen. Daher ist diese Lösung empfehlenswert, wenn das layoutbox Objekt zu den anderen Anforderungen passt.
Eine experimentelle Bestimmung eines Korrekturfaktors ist nicht empfehlenswert.
Diese Lösung ist nicht zu empfehlen, da es durch Rundungsprobleme dazu kommen kann, dass Objekte zu niedrig werden und die Schrift im Objekt unter Umständen abgeschnitten wird.
Die Skalierung kann ich die Umrechnung der Schrifthöhe in Pixel beeinflussen und kann durch Rundungsprobleme dazu kommen kann, dass Objekte zu niedrig werden und die Schrift im Objekt unter Umständen abgeschnitten wird.
9 / 56
Category:
Runtime environment and error analysis
9. Orden Sie die folgenden Bilder der zugehörigen IDM-Anwendung zu.
A) B) C)
Choose the correct answer!
This answer is unfortunately incorrect.
A) IDM Netzwerk Simulator
B) IDM Debugger
C) IDM Simulator
10 / 56
Category:
Objects, resources, and attributes
10. Wozu dient das application-Objekt im IDM?
Choose the correct answer!
This answer is unfortunately incorrect.
In der Applikation werden Funktionen definiert und wichtige Eigenschaften für die Kommunikation der Client-Anwendung mit dem Server eingestellt: Kommunikationsprotokoll, Serveradresse etc.
11 / 56
Category:
Rule Language
11. Ein modularisierter Dialog der mehrfach das Modul modwin.mod importiert welches eine Fensterinstanz "Mod Window" beinhaltet wird gestartet.
a) Wie viele Fenster kann man nach dem Start sehen?
b) Wie viele Module wurden geladen und gestartet?
c) Wie viele Window-Default-Objekte existieren?
// file: modular.dlg
dialog D
import ImpWinA "MODPATH:modwin.if";
import ImpExtra "MODPATH:modextra.if";
import ImpWinB "MODPATH:modwin.if";
window WiMain {
.title "Dlg Window";
on close { exit(); }
}
// file: modwin.mod
module ModWin
export window Wi {
.title "Mod Window";
}
// file: modextra.mod
module ModExtra
export import ImpWinExtra "MODPATH:modwin.if";
export default window WINDOW { }
Choose the correct answer!
This answer is unfortunately incorrect.
Die hierarchische Beziehung der importierten Module spielt beim IDM eine Rolle. Wer sich hiervon lösen und eigentlich Antwort 3 angekreuzt hat sollte auch den alternativen Import über use mal näher ansehen.
Der alternative Import-Mechanismus über use würde für das einmalige Laden der Module automatisch sorgen und zu diesem leicht durchschaubaren Ergebnis führen.
12 / 56
Category:
Objects, resources, and attributes
12. Wie kann ich in meiner Anwendung Bilder anzeigen?
Choose the correct answer!
This answer is unfortunately incorrect.
Der beste Weg, Bilder in die Anwendung einzubinden, geht über eine tile-Ressource. Dadurch sind sie für den ganzen Dialog verfügbar zu machen und werden beim Bau in die Anwendung integriert, so dass sie nicht separat ausgeliefert werden müssen.
Aus Kompatibilitätsgründen ist die direkte Verwendung des .picture ebenfalls möglich. Davon raten wir aber ab.
13 / 56
Category:
Programming Interfaces
13. Gibt es Restriktionen für den Aufruf von ISA Dialog Manager Schnittstellenfunktionen?
Choose all correct answers!
This answer is unfortunately incorrect.
Richtig ist:
Initialisierung in definierter Reihenfolge: Initialisierung des ISA Dialog Manager: Die Reihenfolge ist DM_BootStrap (findet bereits im Startup vor Aufruf von AppMain statt) gefolgt von DM_Initialize Ab da können bereits globale Einstellungen oder Abfragen vorgenommen werden, das setup Objekt ist verfügbar.
RunStates: Zum Großteil wird der korrekte Aufruf durch RunStates sichergestellt. Bei einer erkannten Verletzung des RunStates wird der Fehlercode DME_WrongRunState gesetzt.
Hauptthread: Die erwähnten Funktionen können immer aufgerufen werden, sonst dürfen nur aus Anwendungsfunktionen alle Schnittstellenfunktionen aufgerufen werden.
Falsch ist:
Keine Restriktionen: Es gibt die unterschiedlichsten Restriktionen wann oder wo die Schnittstellenfunktionen aufgerufen werden dürfen.
Nur einmal DM_Load_Dialog: Es dürfen weitere Dialog geladen und gestartet werden.
DM_GeValueIndex aus Format- oder Canvas-Funktion: Dieser Aufruf ist verboten, da es zu ungewollten Interaktionen mit der Ereignisschleife kommen kann.
Also see: https://www.isa.de/doc/idmdoc/doc-de/html/index.html#cf/absicherung.html#2.9_Absicherungen_in_der_Programmschnittstelle
15 / 56
Category:
Programming Interfaces
15. Für welche Programmiersprachen gibt es die Programmierschnittstelle des ISA Dialog Manager.
Choose all correct answers!
This answer is unfortunately incorrect.
Richtig ist:
C/C++: Eigentlich nur für C, aber C++ kann auch C.
Cobol: Für Cobol gibt es auch eine Programmierschnittstelle.
Falsch ist:
Fortran: Diese Programmiersprache wird nicht unterstützt.
Perl: Skriptsprachen werden nicht unterstützt.
Java: Diese Programmierschnittstelle gibt es nicht mehr.
On Plattformen - ISA Informationssysteme GmbH sind die aktuell unterstützten Varianten aufgeführt.
16 / 56
Category:
Objects, resources, and attributes
16. Welche Kindobjekte sind in einem Fenster erlaubt?
Sadly your answer is wrong.
In einem Fenster können die meisten IDM-Objekte direkt hinzugefühgt werden.
Ausnahmen sind Objekte, die ein weiteres Fenster öffnen: messagebox , filereq and window, aber auch menusep .
message ist eine Ressource und kein Objekt.
17 / 56
Category:
Graphical Editor
17. Welche Aussagen zum Editieren von Dateien im IDMED stimmen?
Choose all correct answers!
This answer is unfortunately incorrect.
Die Editiermöglichkeiten umfassen Dialoge wie auch Module in ASCII-Form. Das Export-Fenster dient zum Erzeugen von Interface- Dateien und uvm.
Für importierte Sub-Module sollte aber eine Interface-Datei vorhanden sein. Bei Import über use entfällt aber diese Restriktion.
Binärmodule lassen vom IDMED gar nicht editieren.
Dass sich importierten Module grundsätzlich nicht editieren lassen ist ein besonders wichtiges Features des IDMED um bei Moduländerungen die Konsistenz zu gewährleisten. Änderungen am Modul können so auf die importierenden Module weiterpropagiert werden.
Der Editor hat über sein Export-Fenster die Möglichkeit Interface-Dateien und andere Dateiarten zu generieren. Entweder manuell oder z.B. automatisch beim Speichern des Modules.
Die Analyse von Tracedateien ist die Kern-Kompetenz des IDMTA (IDM Tracefile Analyzer) und nicht des IDMED.
18 / 56
Category:
Runtime environment and error analysis
18. Wie kann für eine IDM-Anwendung ein Tracefile oder Logdatei vom Anwendungslauf erzeugt werden?
Choose all correct answers!
Diese Anwort war leider falsch
Beim Safety-Tracefile wir ein gekürztes Tracing im Falle eines Dumpstate oder Absturz geschrieben und eignet sich damit auch bei selten auftretenden Problemen.
Selbst ohne Option wird ein Logfile mit dem Namen IDM<Prozessnummer> .log angelegt wenn es zu Log-Ausgaben kommt.
Die Standardoption -IDMtracefile sollte jedem IDM-Entwickler bekannt sein.
19 / 56
Category:
Programming Interfaces
19. Wie kommt man zur richtigen Definition der Anwendungsfunktion?
Choose all correct answers!
This answer is unfortunately incorrect.
Richtig ist:
+writeproto: Machbar, hat aber Fallstricke, da man DM_BindFunctions selbst aufruft und deshalb auch die Funktionstabelle manuell anlegt. Es gibt mittlerweile bessere Möglichkeiten.
+writefuncmap: Dies ist der empfohlene Weg, es werden die Dateien erzeugt, die die Deklarationen für die Anwendungsfunktionen enthalten und die Definition für Funktionen zum Anbinden der Anwendungsfunktionen zur Verfügung stellen.
Falsch ist:
Handbuch: Wäre zwar machbar, aber äußerst fehleranfällig. Sobald es Änderungen im Dialogskript gibt, wird es Probleme mit dem Nachführen geben.
+writetrampolin: Diese Startoptionen ist ausschließlich für die Verwendung mit Record-Funktionen vorgesehen.
20 / 56
Category:
Rule Language
20. Welche Ereignisreglen werden ausgeführt wenn ein select-Ereignis durch einen Klick auf den "Select me!"-Pushbutton ausgelöst wird?
default pushbutton PUSHBUTTON { // Default
on select after { print "PUSHBUTTON: select after"; }
on select before { print "PUSHBUTTON: select before"; }
}
model pushbutton MPb { //Modell
on select { print "MPb: select"; }
on select before { print "MPb: select before"; }
}
window Wi
{
MPb Pb { .text "Select me!"; // Instanz
on select { print "Pb: select"; }
on select after { print "Pb: select after"; }
on select { print "Pb: select (2)"; }
}
Choose all correct answers!
This answer is unfortunately incorrect.
Durch diese Regelabarbeitungsreihenfolge ist es möglich Funktionalität in Modelle zu packen aber auch die Ereignisverarbeitung an übergeordneten Modellen oder von der Instanz überdefinierbar zu machen.
21 / 56
Category:
Options
21. Wie wird ein USW Objekt dem ISA Dialog Manager bekannt gegeben?
Choose all correct answers!
This answer is unfortunately incorrect.
Richtig ist:
Dynamische Bibliothek: Diese können zur Laufzeit geladen werden und die Funktion USW_Register aufgerufen werden, falls vorhanden. Alle registrierten Klassen stehen dann im ISA Dialog Manager zur Verfügung.
Startoption: In den angegebenen Verzeichnissen wird nach dynamischen Bibliotheken gesucht.
Falsch ist:
Modul Datei: In diese können zwar Objektmodelle definiert werden, aber keine Fenstersystemobjekte, da diese in einer vom Fenstersystem unterstützen Programmiersprache implementiert werden müssen.
Statische Bibliothek: Denkbar, jedoch wäre damit eine Bearbeitung im ISA Dialog Manager Editor idmed nicht möglich.
idmlangdef.xml Datei: Diese gibt es zwar, sie dient aber dem IDM Eclipse Plugin um die Spezifikationen aller verfügbarer Objekte zu erfahren.
22 / 56
Category:
Eclipse plugins
22. Mein Dialog lässt sich in ausführen, aber ich finde das Problem einfach nicht. Welche Unterstützung bietet mir das IDM Eclipse Plugin dafür?
Choose the correct answer!
This answer is unfortunately incorrect.
The IDM Debugger-Plugin für Eclipse unterstützt alle Möglichkeiten, die Entwicker von Eclipse gewöhnt sind. In Regeln können Breakpoints gesetzt werden, um den Ablauf an kritischen Codestellen anzuhalten und sich z.B. den Inhalt von variablen anzusehen.
Mit einer Tracedatei lässt sich erfahrungsgemäß ein Fehler sehr gut eingrenzen.
23 / 56
Category:
UI Design
23. Auf welchen Plattformen ist Ihr IDM-Dialog ablauffähig?
Choose the correct answers!
This answer is unfortunately incorrect.
The ISA Dialog Manager is available in three versions:
IDM for Windows ;
IDM for Motif (for Unix-like systems with X Window System);
IDM for Qt (für Linux mit X Window System).
Alle Details finden Sie in dieser Overview .
24 / 56
Category:
Options
24. Wodurch kann ich erkennen, ob es beim Verbindungsaufbau zu einer Netzwerkanwendung einen Fehler gab?
dialog MyDlg {}
application MyAppl {
.connect "MyServer:4711";
.transport "tcpip";
}
Choose all correct answers!
This answer is unfortunately incorrect.
Die sofortige Abfrage von .active erscheint zwar etwas wiedersinnig, aber wenn das Aktivieren, also das Verbinden zur Anwendung, fehlschlägt, wird das Attribut .active direkt auf false gesetzt. Etwas spitzfindig kann man eine Anwendung konstruieren, die sich auf dem Server sofort wieder regulär beendet. Dann könnte es unter Umständen sein, dass .active bis zur Abfrage bereits wieder auf false steht. Aber dies wäre keine typisch ISA Dialog Manager Anwendung, die darauf wartet, dass eine Funktion aufgerufen wird.
Genau genommen wird hiermit jeder Fehler der Netzwerkanwendung erkannt, da die on finish Regel aufgerufen wird, sobald sich die Anwendung beendet. Den sicheren Start der Anwendung kann man in einer on start Regel erkennen. Dieses Ereignis wird ausbleiben, wenn es beim Start einen Fehler gab.
Der Aufruf der on finish Regel geschieht auch bei einem normalen Beenden der Anwendung.
25 / 56
Category:
Geometry
25. Wodurch kann die Oberfläche in der Größe anpassbar gemacht werden?
Choose all correct answers!
This answer is unfortunately incorrect.
Wenn die Oberfläche in der Größe anpassbar sein soll, müssen zwei Probleme gelöst werden:
Die Größenänderung aller dargestellten Objekte.
Wenn Objekte vergrößert werden, passen diese nicht mehr auf die Darstellungsfläche.
Daher sind folgende Antworten richtig:
Rasterkoordinaten: Durch die Änderung des Rasters kann die Größe von Objekten angepasst werden.
layoutbox Objekt: Die Kindobjekte werden automatisch umgebrochen, wenn sie zu groß geworden sind.
Virtueller Arbeitsbereich: Optionale Scrollbars stellen sicher, dass alle Kindobjekte in den sichtbaren Bereich gescrollt werden können.
Referenzschriftart: Durch Ändern der Referenzschriftart kann im Zusammenspiel mit Rasterkoordinaten die Größe von Objekten einfach angepasst werden.
Die folgenden Antworten sind falsch, da sie die zwei Probleme nicht oder nur sehr aufwändig lösen:
Pixelkoordinaten: Zu aufwändig, da die Pixelkoordinaten aller Objekte angepasst werden müssen.
notebook Objekt: Dieses Objekt bietet keine Automatik für Größenanpassungen an.
Fester Arbeitsbereich: Wenn Objekte vergrößert werden und damit auch nach links oder unten verschoben werden, können diese außerhalb des sichtbaren Bereiches liegen.
26 / 56
Category:
Geometry
26. Welche Breite besitzt das listbox Objekt Lb?
groupbox Gb {
.width 120;
.xauto 1;
listbox Lb {
.width 80;
.xauto 0;
}
}
Choose the correct answer!
This answer is unfortunately incorrect.
Richtig ist:
120: Da das listbox Objekt links und rechts angebunden ist, besitzt es in diesem Fall die Breite des Vaterobjekts. Die aktuelle Breite des listbox Objektes in Pixeln lässt sich zur Laufzeit mit dem Attribute .real_width abfragen.
Falsch ist:
80: Das listbox Objekt ist links und rechts angebunden, da hat die Angabe von .width keinerlei Bedeutung.
Breite kann nicht vorhergesagt werden: Das listbox Objekt ist zwar links und rechts angebunden, aber die Breite des Vaterobjekts ist bekannt (120). Die Attribute .xleft und .xright sind mit dem Wert 0 vorbelegt, wenn nichts anderes in einem Model oder Default definiert ist.
27 / 56
Category:
Options
27. Für was steht die Abkürzung DDM der Netzwerkoption?
Choose the correct answer!
This answer is unfortunately incorrect.
There is indeed this museum in Upper Franconia, but this is certainly not an option for the ISA Dialog Manager.
Using the network option of the ISA Dialog Manager, application interface functions can be accessed on another computer. The application is, in effect, distributed, hence the name Distributed Dialog Manager.
28 / 56
Category:
Rule Language
28. Wie vermeide oder erkenne ich in einer Regel einen fehlerhaften Zugriff auf ein Attribut eines Objektes?
Choose all correct answers!
This answer is unfortunately incorrect.
The fail() -Konstrukt um Fehler in Ausdrücken zu erkennen ist eine gute Wahl. Zusätzlich zu return gibt es noch pass and throw für die Weitergabe des Fehlerzustands an den Aufrufer. Durch einen gesetzten Gültigkeitsbereich lassen sich aber Probleme schon vor der Ausführung entdecken.
Um ganz sicher zu gehen lässt sich mit der Methode :has(<Attribute>) prüfen, ob das benutzerdefinierte Attribut überhaupt am Objekt definiert ist.
Mithilfe der fail() -Funktion lässt sich der Zugriff auf das Attribut zu prüfen.
Eine frühzeitige Fehlererkennung kann durch einen Gültigkeitsbereich an der Objekt-Variablen erreicht werden. Das Attribut muss dann am Modell schon definiert sein.
29 / 56
Category:
Runtime environment and error analysis
29. Über die OLE-Option des IDM hab ich einen Web-Browser in meine IDM-Anwendung eingebunden. Dieser funktioniert aber nicht. Statt dessen sehe ich im Logfile folgende Fehlermeldung:
ERROR IN EVAL: error in method call
Wie identifiziere ich nun das Problem?
Choose all correct answers!
This answer is unfortunately incorrect.
Die Analyse des Tracefiles unter Zuhilfenahme des "IDM Tracefile Analyzer " sollte der erste Schritt sein. Mit dem "IDM Errors"-Filter werden alle Fehlermeldungen angezeigt. Eine Kontrolle der umgebenden Tracezeilen oder der Aufrufliste (Stack) ist ebenso sinnvoll, wie auch die Mustersuche nach "OLE".
Hier wurde aber wahrscheinlich der Anfängerfehler gemacht und die IDMOLE.LIB nicht zwischen IDMINIT.LIB und DM.LIB gelinkt .
30 / 56
Category:
UI Design
30. Wie kann ich mit für den IDM einen Dialog erstellen oder anpassen?
Choose all correct answers!
Sadly your answer is wrong.
Quellen von Dialogen und Modulen sind reine Textdateien, die in jedem Texteditor bearbeitet werden können.
Der IDM Editor erlaubt die interaktive Gestaltung eines Anwendungsdialogs, das Erstellen von Regeln und vieles mehr.
31 / 56
Category:
Rule Language
31. Welche Datentyp sind in der IDM-Regelsprache für lokale oder globale Variablen erlaubt?
Choose all correct answers!
This answer is unfortunately incorrect.
Die Regelsprache biete einfache skalare Datentypen wie string , boolean , integer , enum , index , event , class, method , datatype , attribute, method, pointer and object .
Zustätzlich gibt es noch für Variablen die Sammlungsdatentypen wie list , hash , vector, refvec and matrix .
Der Datentyp anvvalue kann dabei Daten von jede der obigen Datentypen aufnehmen. Der Gültigkeitsbereich bei vector[integer] definiert hier eine "Liste" von integer-Werten, im Gegensatz zum list -Datentype der jeglichen skalaren Datentyp erlaubt.
set , CString , short , float oder cardinal kennt der IDM nicht. dialog and rule sind IDM-Klassen. Ausserdem beginnen Schlüsselworte im IDM mit Kleinbuchstaben. Großbuchstaben am Anfang sind definieren Bezeichner.
void dient lediglich zur Definition von Funktionen und Regeln ohne Rückgabe.
32 / 56
Category:
Rule Language
32. Wie kann ich nach dem MVP-Konzept mein Eingabemaske aus einem Daten-Record befüllen und auf "Apply" aktualisieren lassen?
record RecUser {
string Name := "Ines";
integer Age := 33;
boolean Female := true;
}
Choose the correct answer!
This answer is unfortunately incorrect.
Die automatische Represent- und Apply-Funktionalität des Datenmodells erledigt die Synchronisierung für mich. Ich benötige lediglich einen this:apply() -Aufruf bei Betätigung der "Apply"-Buttons. Die Verknüpfung zum RecUser-Record ist nur an einer einzigsten Stelle im Code nötig.
Beim Sichtbarmachung der Eingabemaske wird diese automatisch aus dem Daten-Record befüllt. Eine Konvertierung der Daten zwischen Datenmodell und Anzeige kann über die Methoden :represent() and :retrieve() überdefiniert werden.
layoutbox LyUser {
.datamodel RecUser;
edittext EtName {
.dataget .Name;
.dataset .Name;
spinbox SpBAge {
.dataget .Age;
.dataset .Age;
checkbox CbFemale {
.dataget .Female;
.dataset .Female;
.dataget[.text] .Female;
:represent() {
if Attribute=.text then
Value := this.Text[Value];
endif
pass this:super();
}
pushbutton PbApply {
on select {
this.parent:apply();
}
}
33 / 56
Category:
UI Design
33. Was muss ich tun, um meine Anwendung HiDPI-fähig zu machen?
Choose the correct answer!
This answer is unfortunately incorrect.
HiDPI Bild-Varianten
Um Bilder für verschiedene Bildschirmskalierungen zu darzustellen, kann man mehrere Bilder defineren, die je nach Skalierung verwendet werden.
e.g.
tile Ti "picture.gif;
bei einer Skalierung von 200% wird – sofern vorhanden – vom IDM automatisch das Bild picture@2x.gif geladen (Windows, Motif, Qt)
bei einer Skalierung von 300% wird – sofern vorhanden – vom IDM automatisch das Bild picture@3x.gif geladen (Windows, Motif, Qt)
HiDPI einschalten
Über die Manifestdatei muss HiDPI eingeschaltet werden.
<asmv3:application>
<asmv3:windowsSettings>
<dpiAware xmlns = "http://schemas.microsoft.com/SMI/2005/WindowsSettings">
true
</dpiAware>
<dpiAwareness xmlns = "http://schemas.microsoft.com/SMI/2016/WindowsSettings" >
PerMonitorV2
</dpiAwareness>
</asmv3:windowsSettings>
</asmv3:application>
34 / 56
Category:
UI Design
34. Welche DM Objektklassen kann ich für die Gruppierung von Kind-Objekten verwenden?
Choose all correct answers!
This answer is unfortunately incorrect.
The groupbox ist ein Hilfsobjekt, um eine logische Struktur innerhalb der Objekte zu definieren. Alle in ihr definierten Objekte liegen auf einer logischen Ebene.
Die Aufteilung von Informationen in mehrere Tabs einer Notepage kann helfen, den Dialog übersichtlicher zu gestalten und Informationen besser zu strukturieren.
Ähnlich wie eine groupbox lassen sich in einer layoutbox mehrere Objekte gruppieren.
The tablefield kann keine Kindobjekte aufnehmen.
Selbstverständich wird für die Anordnung von Objekten auf einem Dialog keine USW-Option benötigt!
35 / 56
Category:
Eclipse plugins
35. Wie kann ich im IDM Eclipse Plugin einfach zum Modell meiner Objektinstanz navigieren?
This answer is unfortunately incorrect.
Es gibt verschiedene Möglichkeiten.
Über das Kontektmenü kann man "Jump to Model" wählen.
In der Ansicht "Modellhierarchie" wird die komplette Hierarchie der Modelle dargestellt, so dass man hier leicht zum gewünschten Modell navigieren kann.
36 / 56
Category:
Geometry
36. Welche der Aussagen ist richtig?
Choose all correct answers!
This answer is unfortunately incorrect.
Richtig ist:
Rasterhöhe 1: Zur Berechnung der Rasterhöhe dient edittext Objekt als Referenz. Jedes Objekt besitzt eine andere Rahmenbreite, so dass es vorkommen kann, dass Buchstaben in bestimmten Objektklassen abgeschnitten werden.
Fensterkoordinaten ändern sich: Fenster werden vom Fenstermanager des Desktops verwaltet. Dieser erfüllt nicht alle Größenwünsche.
Falsch ist:
Höhe 0 oder 1 egal: Stimmt nur für edittext Objekt, alle anderen können andere Rahmenbreiten besitzen und damit eine unterschiedliche Höhe bei 0 oder 1.
37 / 56
Category:
Runtime environment and error analysis
37. Ich möchte für meinen modularisierten Dialog Bsp.dlg die Interface und Binärdateien aktualisieren. Wie kann ich dass machen?
Choose all correct answers!
This answer is unfortunately incorrect.
Alle Möglichkeiten führen mehr oder weniger komfortabel zum Ziel.
38 / 56
Category:
Runtime environment and error analysis
38. Auf welchen Betriebssystemen bietet die ISA den IDM zur Ausführung von graphischen Dialogen an?
Choose all correct answers!
This answer is unfortunately incorrect.
Der IDM baut auf den Toolkits WIN32, Motif und Qt auf um Kunden die Entwicklung von Desktop-Anwendungen im professionellen Bereich zu unterstützen. Insofern zählen Smartphone-System nicht zur Zielplattform.
39 / 56
Category:
Runtime environment and error analysis
39. Wen kontaktieren Sie wenn sich Ihre IDM-Anwendung mit einem ASSFAIL oder "CONTACT YOUR LOCAL CUSTOMER SUPPORT" meldet?
Choose the correct answer!
This answer is unfortunately incorrect.
Mehr Informationen zu Support Requests und Informationen, die wir für die Bearbeitung benötigen.
40 / 56
Category:
Graphical Editor
40. Ordnen sie die Icons aus dem Applikationsteil der Werkzeugleiste den korrekten IDM-Klassen zu!
1) 2) 3) 4)
Choose the correct answer!
1=document, 2=timer, 3=doccursor 4=function
1=record, 2=application, 3=rule, 4=import
1=application, 2=rule, 3=function, 4=use
1=function, 2=record, 3=rule, 4=import
This answer is unfortunately incorrect.
41 / 56
Category:
Graphical Editor
41. Was passiert wenn man folgenden Icon in der Toolbar des IDM-Editors betätigt?
Choose the correct answer!
This answer is unfortunately incorrect.
Das Debugging-Symbol erhielt einen roten Breakpoint-Punkt um es vom Simulations-Symbol zu unterscheiden.
42 / 56
Category:
Objects, resources, and attributes
42. Welche Objekte gibt es im IDM?
Choose all correct answers!
This answer is unfortunately incorrect.
Die Dateiauswahlbox heißt filereq, das Eingabefeld heißt edittext
43 / 56
Category:
Options
43. Welche Modes werden von der OLE-Schnittstelle unterstützt?
Choose all correct answers!
This answer is unfortunately incorrect.
Richtig ist:
mode_server: Mit diesem Mode wird das control Objekt anderen Anwendungen zur Verfügung gestellt. Typischerweise wird das control Objekt als Model definiert, so dass es mehrfach instanziiert werden kann.
mode_client: Mit diesem Mode dient das control Objekt als Verbindung zu einem fremden Objekt. Dies kann der Internet Explorer, Microsoft Word oder auch eine Datenbank sein.
Falsch ist:
mode_ole: Diesen Mode gibt es tatsächlich nicht im ISA Dialog Manager.
mode_none: Bedeutet, dass kein Mode gesetzt ist. Ohne gesetzten Mode gibt es keine OLE-Unterstützung.
mode_applet : Diesen Mode gab es einmal in der Java Schnittstelle des ISA Dialog Managers, um das control Objekt zur Darstellung in einem Webbrowser als Applet zu verwenden.
44 / 56
Category:
Graphical Editor
44. Wie bringe ich am schnellsten die MStLabel -Instanzen Profession and Age auf die gleiche horizontale Position wie Name ?
Choose all correct answers!
This answer is unfortunately incorrect.
Der richtig angewandte "Modus Wiederholen" in Kombination mit der Geometrie-Schnellsetzung ist hier die effizienteste Herangehensweise.
Die Pfeile zeigen lediglich die Geometrie-Zuordnung das danebenliegenden Eingabefeldes an. Ein Klick hat keine Funktion. Außerdem ist damit der Abstand zum rechten Rand gemeint.
Mit "Kinder anordnen" wird nur die Reihenfolge der Kinder unter einem Vaterobjekt geändert. Dies hat Einfluss auf die Tab-Reihenfolge und die Überdeckung.
Die Checkbox links vor fast allen Eingabfelder des Eigenschaften-Bereich zeigt an es sich beim Eingabewert um eine "geerbten" Wert handelt oder im Vergleich zum Modell geändert ist. Eine Werteänderung wirkt sich nur auf die Instanzen aus die also keinen überschriebenen Wert besitzten (was hier allerdings der Fall ist).
45 / 56
Category:
Eclipse plugins
45. Wonach kann ich in Eclipse mit der IDM-Suche suchen?
Choose all correct answers!
This answer is unfortunately incorrect.
The IDM search in the Eclipse plugin assists in searching for all object types of the IDM.
46 / 56
Category:
Eclipse plugins
46. Welche Unterstützung bietet das Eclipse-Plugin?
Choose all correct answers!
Sadly your answer is wrong.
The Eclipse plugins for the IDM are a powerful tool for working with the ISA Dialog Manager.
Assistenten (Wizards) zum Anlegen neuer IDM-Projekte und neuer Dateien (Dialoge, Module).
Dynamischer Inhaltsassistent, der Ihnen während der Eingabe eine Liste mit den gültigen Ergänzungsmöglichkeiten (Kindobjekte, Attribute, Methoden, Schlüsselwörter, Aufzählungstypen) anzeigt. Das gewünschte Element können Sie per Mausklick aus der Liste übernehmen. In der Liste werden zusätzlich Kontextinformationen, z. B. die Datentypen von Funktions- und Methodenparametern, angezeigt.
Markierung von Problemstellen (Fehler, Warnungen) durch Symbole am linken Rand.
Ein komfortabler Editor mit Syntax-Hervorhebung, Automatische Formatierung des Quellcodes
IDM-spezifische Ansichten wie Paketansicht, Modellhierarchie
Schnellansichten: Bezeichnerliste mit allen Bezeichnern im Dialog oder Modul. Ein Bezeichner kann per Doppelklick in den Quellcode übernommen werden.
Modellhierarchie des aktuell bearbeiteten Objekts mit der Möglichkeit zur Definition eines Modells zu springen.
Ausführen der Simulation über eine Run- oder Debug-Konfiguration
Kontextsensitive Hilfe, die Sie um eigene Inhalte erweitern können.
Sprungfunktionen für eine schnelle Navigation im Quellcode
Mithilfe von Code-Templates lassen sich Methoden generieren.
47 / 56
Category:
Runtime environment and error analysis
47. Wie stelle ich sicher, dass in meinem Login-Dialog das Passwort nicht eingesehen werden kann und auch nicht im Log- oder Tracefile auftaucht?
Choose all correct answers!
This answer is unfortunately incorrect.
Die verdeckte Formatierung zusammen mit der Steuerung der Tracing-Ausgabe ist in diesem Fall einzusetzen. Der IDM unterstützt zwar reguläre Ausdrücken für die Validierung der Eingabe aber keine Zeichenersetzung.
48 / 56
Category:
Geometry
48. Welche der folgenden Attribute können die Rastergröße ändern?
groupbox Gb {
.xraster 13;
.font MyFont;
.yauto 0;
.real_yraster 15;
.reffont MyFont;
}
Choose all correct answers!
This answer is unfortunately incorrect.
Das Attribut .xraster setzt die Rasterbreite für die Kindobjekte, außer das Attribut .reffont ist gesetzt.
Das Attribut .reffont bestimmt eine Schriftart, die zur Rastergrößenberechnung herangezogen wird. Die font Ressource besitzt eine Reihe von Attributen, um die Umrechnung in Pixel zu beeinflussen.
Das Attribut .font setzt die Schriftart des Objektes, bestimmt aber keine Rastergröße.
Das Attribut .yauto bestimmt wie bzw. wo das Objekt in seinem Vaterobjekt angebunden ist. Der Wert 0 besagt, dass das Objekt oben und unten angebunden ist.
Mit dem Attribut .real_yraster kann die aktuelle Rasterhöhe abgefragt werden, ein Setzen ist nicht möglich. Allgemein gilt, dass Attribute, die mit der Vorsilbe real_ beginnen, ausschließlich der Abfrage von aktuellen Werten dienen, wenn das Objekt angelegt ist.
49 / 56
Category:
Eclipse plugins
49. Wie kann ich meinen Bezeichner vervollständigen lassen?
This answer is unfortunately incorrect.
Beim Drücken von STRG + Leertaste wird ein Menü geöffnet, in dem der Benutzer aus einer Liste von passenden Objekten eine Auswahl treffen kann.
STRG + h öffnet die IDM-Suche.
50 / 56
Category:
Options
50. Was ermöglicht mir die USW-Option?
Choose all correct answers!
This answer is unfortunately incorrect.
Richtig ist:
IDM erweitern: Im Dialogskript sind die USW-Objekte nicht von anderen IDM Objekten zu unterscheiden. Die Darstellungskomponente des Tracefile Analyzers ist zum Beispiel als USW-Objekt implementiert.
Schnittstelle zu Fenstersystem-Objekt: Damit können Fenstersystem-Objekte, die es zum Beispiel nur unter Windows gibt, wie IDM Objekte im Dialogskript verwendet werden.
Falsch ist:
IDM Objekte erweitern: Dies geht leider nicht, aber ich kann eigene Objekte implementieren, die die gewünschte Funktion besitzen.
Portable Objekte: Die Definition der Schnittstelle zum ISA Dialog Manager ist zwar portabel möglich, aber das eigentliche Objekt muss spezifisch für das jeweilige Fenstersystem implementiert werden.
51 / 56
Category:
Objects, resources, and attributes
51. Wie kann ich Oberflächentexte in mehreren Sprachen erstellen?
Choose the correct answer!
This answer is unfortunately incorrect.
Mithilfe von Textressourcen lassen sich für mehrere Sprachen Texte definieren, so dass der Benutzer die Oberfläche in seiner eingestellten Sprache sehen kann.
52 / 56
Category:
Eclipse plugins
52. Welche Optionen gibt es für das Eclipse-Plugin?
Choose all correct answers!
This answer is unfortunately incorrect.
Die Outline und Code-Formatierung sind Bestandteil des Eclipse Plugins.
53 / 56
Category:
Objects, resources, and attributes
53. Welche Varianten Ressourcen kann ich im IDM definieren?
This answer is unfortunately incorrect.
Farben, Schriftarten, Bilder, Mauszeiger, Tastaturbeschleuniger, Ein- und Ausgabeformate, Mehrsprachige Texte und Quellen/Ziele für Drag&Drop können als Variant Resources definiert werden. Dadurch lassen sich zum Beispiel Oberflächentexte für mehrere Sprachen für Ihre Anwendung definieren.
Mehr über Variant Resources finden Sie in unserer Dokumentation.
54 / 56
Category:
Objects, resources, and attributes
54. Wie kann ich einen edittext mehrzeilig machen?
Choose the correct answer!
This answer is unfortunately incorrect.
Es gibt kein Objekt "Textfield". Ein edittext lässt sich über das Attribut .multiline in ein mehrzeiliges Textfeld umwandeln.
55 / 56
Category:
Rule Language
55. Wie bekomme ich den Listbox-Inhalt mit meiner Names-Liste sortiert und in die horizontale "Name"-Zeile meiner Tabelle herein?
Choose all correct answers!
This answer is unfortunately incorrect.
Die Option opt_sort ist nur für den poptext verfügbar.
The :insert -Methode fügt lediglich leere Zeilen/Spalten ein. Auch eine Sortierungsoption hat sie nicht.
Dies letzte Option ist etwas umständlich, funktioniert aber ebenso.
Mit den Builtin-Funktionen getvector() and setvector() stehen Funktionen in der Regelsprache bereit um in einer Aktion den komplette Inhalt zu bekommen.
56 / 56
Category:
Rule Language
56. Welche Code-Ausschnitt zum durchlaufen eines Arrays ist in der IDM Regelsprache geschrieben?
Choose all correct answers!
This answer is unfortunately incorrect.
Mit der Regelsprache wird eine Schleife so definiert:
for I:=1 to Listbox.itemcount do
print Listbox.content[I];
endfor
oder
variable list Array := ["go","fly","jump"];
variable string Action;
foreach Action in Array do
print Action;
endfor
Die anderen Codeschnipsel sind PHP, JavaScript und C++.
Your score is
The average score is 72%