4D Write v14WR ON EVENT |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D Write v14
WR ON EVENT
|
WR ON EVENT ( Bereich ; Ereignis ; Verfahren ) | ||||||||
Parameter | Typ | Beschreibung | ||||||
Bereich | Lange Ganzzahl |
![]() |
4D Write Bereich | |||||
Ereignis | Lange Ganzzahl |
![]() |
Code des Ereignisses | |||||
Verfahren | String |
![]() |
Auszuführende Methode | |||||
Der Befehl WR ON EVENT installiert Methode als Methode, die immer aufgerufen wird, wenn Ereignis in Bereich auftritt. Ereignisse werden direkt in Methode übergeben, bevor sie von 4D Write bearbeitet werden.
Ist Bereich gleich 0, gilt Methode für alle 4D Write Bereiche bis zum Schließen der Datenbank. Ist in einem 4D Write-Bereich eine eigene Ereignismethode installiert, hat sie Vorrang vor der Standardmethode.
Im Parameter Ereignis übergeben Sie einen Wert, der das abzufangende Ereignis angibt. Sie können eine der vordefinierten Konstanten unter dem Thema WR Ereignisse verwenden:
Konstante | Typ | Wert | Meldung |
wr on key | Lange Ganzzahl | 0 | Taste wurde gedrückt (inkl. Pfeiltasten, Zeilenschaltung, Tab, ...) |
wr on double click | Lange Ganzzahl | 1 | Doppelklick |
wr on single click | Lange Ganzzahl | 2 | Einfacher Klick |
wr on triple click | Lange Ganzzahl | 3 | Dreifacher Klick |
wr on right click | Lange Ganzzahl | 4 | Klick mit rechter Maustaste |
wr on activate | Lange Ganzzahl | 5 | 4D Write Bereich aktiviert oder deaktiviert |
wr on printing | Lange Ganzzahl | 7 | Dokument für Drucken |
wr on ruler | Lange Ganzzahl | 8 | Änderung im Lineal |
wr on compute references | Lange Ganzzahl | 9 | Geänderte dynamische Referenzen |
wr on close | Lange Ganzzahl | 10 | 4D Write Bereich oder Fenster geschlossen |
wr on drag | Lange Ganzzahl | 11 | Objekt wurde per Drag bewegt |
wr on drop | Lange Ganzzahl | 12 | Objekt wurde per Drop bewegt |
wr on timer | Lange Ganzzahl | 13 | Ende einer Zeitspanne |
Um Methode für alle Ereignisse zu aktivieren, übergeben Sie -1 in Ereignis.
Methode erhält sieben Parameter, die den Status von Bereich zum Zeitpunkt des Ereignisses beschreiben. Für eine eventuelle Kompilierung müssen sie folgendermaßen deklariert sein:
Variable | Typ | Beschreibung |
$1 | Lange Ganzzahl | 4D Write Bereich |
$2 | Ganzzahl | Umschalttaste |
$3 | Ganzzahl | alt-Taste/Wahltaste |
$4 | Ganzzahl | strg-Taste/Befehlstaste |
$5 | Ganzzahl | Ereignistyp |
$6 | Ganzzahl | Wert variiert gemäß Ereignistyp |
$0 | Lange Ganzzahl | Wenn Methode einen Wert zurückgibt |
$1 gibt die Nummer des Bereichs zurück, wo das Ereignis auftrat. $2, $3 und $4 zeigen den Status der Sondertasten zum Zeitpunkt des Ereignisses. Ist Wert gleich 0, wurde die Taste nicht gedrückt. Ist Wert gleich 1, wurde die Taste gedrückt. $5 gibt den Ereignistyp zurück. $6 variiert je nach Ereignistyp.
Variablen und Parameter des Ereignisses ($6)
Methode wird aufgerufen, wenn Sie folgende Aktionen ausführen:
Um Ereignisse zu filtern, müssen Sie die Methode als Funktion verwenden, die 0 oder 1 zurückgibt. So können Sie im Dokument Zeichen festlegen, die 4D Write ignoriert.
Weisen Sie $0 den Wert 0 zu, hat Methode auf ein bestimmtes Ereignis reagiert, bei $0 gleich 1 nicht, d.h. es soll von 4D Write ausgewertet werden.
Ein Beispiel soll diesen Fall veranschaulichen. Sie wollen nicht, dass das Zeichen “@” in Ihrem Dokument erscheint. Filtern Sie dazu die Eingabe aller Zeichen, die in Ihrem Dokument erscheinen. Sie ignorieren das Zeichen, wenn Sie $0 den Wert 1 zuweisen, während $6 gleich dem Zeichen-Code für den Joker ist. Die Eingabe von @ wird dann unterdrückt.
Hinweis: Beim Filtern der Zeicheneingabe wird jeder Anschlag überprüft, was die Eingabe beträchtlich verlangsamt. Sie sollten die Anwendung deshalb unbedingt kompilieren.
Im folgenden Beispiel werden einige Aktionen je nach Ereignistyp ausgeführt:
`Formularmethode:
If(Form event=On Load)
WR ON EVENT(Bereich;wr on key;"ProcName") `Rufe alle Anschläge auf
WR ON EVENT(Bereich;wr on activate;"ProcName") `Prüfe Status des Bereichs
DISABLE MENU ITEM(2;1) `Deaktiviere Menüzeile "Schrift ändern"
WR SET AREA PROPERTY(Bereich;wr timer frequency;54000) `Timer Ereignis alle 15 Minuten
WR ON EVENT(Bereich;wr on timer;"ProcName") `Setze Auto-Save
End if
`Methode MethName:
Case of
:($5=wr on key)
`Abfrage der Tasten
If($6=199)|($6=200) `Dazugehörige ASCII Codes
BEEP
$0:=1
Else `Überlässt man 4D Write das Ereignis
$0:=0
End if
:($5=wr on activate) `Abfrage über Statusänderung des 4D Write Bereichs
If($6=0) `Ist Bereich inaktiv
DISABLE MENU ITEM(2;1) `Menüzeile "Schrift ändern" deaktivieren
Else `Ist Bereich aktiv
ENABLE MENU ITEM(2;1) `Menüzeile "Schrift ändern" aktivieren
End if
:($5=wr on timer) `Alle 15 Minuten
$DocName:="C:\\Temp\\Docs\\TheArea.4W7"
WR SAVE DOCUMENT(TheArea;$DocName;"4WR7")
End case
Produkt: 4D Write
Thema: WR Hilfsmittel
Nummer:
89174
Geändert: 4D Write 2004.1
WR Get on event method
WR ON ERROR
4D Write Programmiersprache ( 4D Write v11.6)
4D Write Programmiersprache ( 4D Write v12)
4D Write Programmiersprache ( 4D v13)
4D Write Programmiersprache ( 4D Write v14)
4D Write Programmiersprache ( 4D Write v14 R2)
4D Write Programmiersprache ( 4D Write v14 R3)
4D Write Programmiersprache ( 4D Write v14 R4)