1.2.85 DlgShowDialog – Dialog für die Anzeige von Text
DlgShowDialog( strCaption, strText, nDlgType, nDelay );
DlgShowDialogMessage( nCommand, strMessage );
DlgHideDialog();
DlgDialogDebug();
|
Argumente
|
strCaption
Dieser Text wird im Dialog in „Überschrift Statusline“ angezeigt.
strText
Der Text, übergeben mit Hilfe dieser Variablen, wird in „Text Editbox“ angezeigt. Pro Zeile können 44 Zeichen angezeigt werden. Ist der String länger als 44 Zeichen, wird er umgebrochen. Mit \n kann der Umbruch an beliebiger Stelle erzwungen werden.
nDlgType
nDelay
Mit Hilfe dieser Variablen wird die Zeit in Sekunden angegeben, die das Skript beim Aufruf von DlgShowDialog angehalten wird. Ist nDlgType == 1, also ein Dialog ohne Weitertaste, kann die Ausführung des Skriptes für maximal 30 Sekunden unterbrochen werden.
Die Dialoge müssen vom Skripter mit der Funktion DlgHideDialog() wieder geschlossen werden.
Mit Drücken der Weitertaste wird der Dialog geschlossen und das Skript weitergeführt.
nCommand
DlgHideDialog ruft DlgShowDialogMessage mit nCommand==0 auf. Die Angaben in strMessage werden ignoriert.
Damit der Benutzer immer den zuletzt eingefügten Satz lesen kann, werden die Zeilenumbrüche, die \n gezählt. Wird nun eine String übergeben, der Länger als 44 Zeichen ist, bricht die „Text Editbox“ den Text automatisch am Ende um. Dadurch werden weniger Zeilen gezählt und der letzte Satz ist unter Umständen nicht sichtbar. Aus diesem Grund wird empfohlen, nach dem 40. Zeichen ein \n einzufügen.
Bei nCommand==4 wird der Text in „Update Editbox“ durch den Text, der in strMessage übergeben wird, ersetzt.
strMessage
Angabe des Textes, der mit Hilfe der Funktion DlgShowMessage ersetzt oder hinzugefügt werden soll.
| |||||||||||
|
Rückgabewert
|
Keiner: Skript wird im Fehlerfall abgebrochen.
| |||||||||||
|
Beispiel
|
Das Aufrufen von InfraSetupFunktionen aus Unterskripten ist nicht möglich. Aus diesem Grund wurden die Dialog-Erweiterungsfunktionen erstellt, die mit #UseDllExtension=ACIPSDLG.DLL hinzugeladen werden können.
Die DlgShowDialoge entsprechen der InfraSetupFunktion SdShowMsg.
Die Dialoge können nur Informationen ausgeben. Der Skripter hat keine Möglichkeit, Benutzereingaben auszuwerten.
Es gibt zwei DglShowDialoge.
Es gibt also nur drei Möglichkeiten den Dialog wieder zu schließen.
DlgDialogDebug():
Die Dialoge sind als Systemmodal eingestellt. D.h. sie stehen immer im Vordergrund auf dem Bildschirm.
Mit Hilfe der Funktion DlgDialogDebug () wird die Systemmodalität von DlgShowMessage aufgehoben. DlgDialogDebug() muss nur am Anfang des Skriptteiles, z.B. im AtEnd.cpp aufgerufen werden.
Die Einstellung gilt auch in den Unterskripten.
Eine weitere Besonderheit ist die Variable nDelay.
Mit Hilfe dieser Variablen kann dem Dialog mitgeteilt werden, wie lange das Skript unterbrochen, bzw. der Dialog angezeigt werden soll um dem Benutzer genügend Zeit zu lassen, die Texte zu lesen.
In diesem Fall wird der Dialog ohne Weitertaste benutzt.
Beispiel: Es sollten zusätzliche Dateien kopiert werden. Das Kopieren dauert aber nur ein Bruchteil einer Sekunde, so würde der Dialog nur schell angezeigt um gleich danach wieder zu verschwinden.
Die Texte könnten in dieser kurzen Zeit nicht gelesen werden. Mit nDelay==2 würden die Text zwei Sekunden am Bildschirm angezeigt.
Der Dialog mit der Weitertaste sollte benutzt werden, um Meldungen auszugeben, die die Funktionalität von infra:NET einschränken.
Kennt der Benutzer die Meldung bereits, kann er den Dialog löschen und das Skript wird weitergeführt.
Wird das Setup nicht überwacht, kann der Skripter nach Ablauf der Zeit, die in nDelay angegeben worden ist, den Dialog mit Hilfe von DlgHideDialog schließen.
Beispiel: Auf einem Rechner sei PowerPoint nicht installiert. Dies sollte dem Benutzer gemeldet werden, das gewisse Funktionen in infra:NET deshalb nicht verwendet werden können.
Früher wurde eine MessageBox ausgegeben, die bestätigt werden musste.
Die Person, die infra:NET installiert, musste also laufend zum Rechner rennen um „Ok“ zu drücken.
Jetzt kann der Skripter diese Information 30 Sekunden anzeigen und danach den Dialog wieder schliessen.
Der Benutzer kann aber auch auf die Weitertaste drücken und der Dialog wird, vor dem Ablauf der 30 Sekunden, geschlossen und das Setup weitergeführt.
| |||||||||||
|
|
| |||||||||||
![]() |
![]() | |||||||||||
|
Anzeigedialog mit Weitertaste
Dieser Dialog wird mit nDlgType == 0 aufgerufen
|
Anzeigedialog
Dieser Dialog wird mit nDlgType == 1 aufgerufen
| |||||||||||
|
Funktionsart
|
Dialogfunktion
| |
|
Beispiel
|
Das folgende Beispiel zeigt das Skript und die Dialoge die ausgegeben werden.
| |
![]() |
![]() | |
|
Warten
|
Nach dem Warten
| |
|
|
//Diese Dialoge erhalten Sie mit folgendem Beispielskript.
String( strTxtEditbox );
AssignString(strTxtEditbox, "\nHaben Sie bitte etwas geduld. \n\n" );
DlgShowDialog( "Bitte 15 Sekunden warten", strTxtEditbox, 1, 15 );
DlgShowDialogMessage( 3, "\nSie waren geduldig. \nVielen Dank." );
DlgShowDialogMessage( 4, "Sie warteten 15 Sekunden." );
//............ weiter geht’s im Skript
//DlgHideDialog(); // Schliesse den Dialog
|



