Version 3
MESSAGE (Meldungstext)
| Parameter | Typ | Beschreibung | |
| Meldungstext | String | Zu zeigende Meldung |
Beschreibung
Der Befehl MESSAGE zeigt in einem besonderen Fenster den Text Meldungstext an. Wird ein Formular aufgerufen oder eine Methode mit einem Formularaufruf ausgeführt, verschwindet dieses Fenster. Bei jedem Aufruf von MESSAGE löscht 4th Dimension den Inhalt des Fensters, bevor die neue Meldung gezeigt wird.
Wurde ein Fenster mit der Funktion Open Window am Bildschirm erstellt, zeigt 4D den Meldungstext in diesem Fenster an der Position an, wo sich der Cursor befindet. Beim Aufruf des Befehls MESSAGE löscht 4th Dimension nicht, wie im ersten Fall, den Inhalt des Fensters, sondern geht zur aktuellen Position des Cursors, also entweder hinter der letzten Eintragung oder auf die Position, die ihm durch den Befehl GOTO XY zugewiesen wurde.
4th Dimension verwendet für Meldungen die im Dialogfenster Datenbankeigenschaften festgelegte Schriftart und Schriftgröße:
Sie können diese Einstellung beliebig ändern. Verwenden Sie MESSAGE jedoch in Verbindung mit GOTO XY, empfiehlt es sich, eine Schrift mit fester Breite zu wählen, wie z.B. Courier New unter Windows oder Monaco auf Macintosh.
Beispiele
1. Folgendes Beispiel bearbeitet eine Datensatzauswahl und informiert den Benutzer über MESSAGE über das Fortschreiten der Operation:
For($vlRecord;1;Records in selection([anyTable]))
MESSAGE ("Datensatz wird bearbeitet Nr."+String($vlRecord))
` Tu etwas mit dem Datensatz
NEXT RECORD([anyTable])
End for
Folgendes Fenster erscheint und verschwindet bei jedem Aufruf von MESSAGE:
2. Um dieses "blinkende" Fenster zu vermeiden, können Sie die Meldungen mit der Funktion Open window in einem Fenster anzeigen:
Open window(50;50;500;250;5;"Operation läuft")
For($vlRecord;1;Records in selection([anyTable]))
MESSAGE ("Datensatz wird bearbeitet Nr."+String($vlRecord))
` Tu etwas mit dem Datensatz
NEXT RECORD([anyTable])
End for
CLOSE WINDOW
Sie erhalten folgendes Ergebnis (auf Macintosh):
3. Fügen Sie die Zeilenschaltung ein:
Open window(50;50;500;250;5;"Operation läuft")
For($vlRecord;1;Records in selection([anyTable]))
MESSAGE ("Datensatz wird bearbeitet Nr."+String($vlRecord)+Char(13))
` Tu etwas mit dem Datensatz
NEXT RECORD([anyTable])
End for
CLOSE WINDOW
erhalten Sie ein besseres Ergebnis (auf Macintosh):
4. Mit GOTO XY und weiteren Programmierzeilen:
Open window(50;50;500;250;5;"Operation läuft")
$vlNbRecords:=Records in selection([anyTable])
$vhStartTime:=Current time
For($vlRecord;1;$vlNbRecords)
GOTO XY(5;2)
MESSAGE ("Datensatz wird bearbeitet Nr."+String($vlRecord)+Char(13))
` Tu etwas mit dem Datensatz
NEXT RECORD([anyTable])
GOTO XY(5;5)
$vlRemaining:=(($vlNbRecords/$vlRecord)-1)*(Current time-$vhStartTime)
MESSAGE ("Noch verbleibende Zeit: ca. "+Time string($vlRemaining))
End for
CLOSE WINDOW
erhalten Sie folgendes Ergebnis (unter Windows):
Referenz
CLOSE WINDOW, ERASE WINDOW, GOTO XY, Open window.