4D Write v14

WR ON EVENT

Home

 
4D Write v14
WR ON EVENT

WR ON EVENT 


 

WR ON EVENT ( Bereich ; Ereignis ; Verfahren ) 
Parameter Typ   Beschreibung
Bereich  Lange Ganzzahl in 4D Write Bereich
Ereignis  Lange Ganzzahl in Code des Ereignisses
Verfahren  String in 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:

VariableTypBeschreibung
$1Lange Ganzzahl4D Write Bereich
$2GanzzahlUmschalttaste
$3Ganzzahlalt-Taste/Wahltaste
$4Ganzzahlstrg-Taste/Befehlstaste
$5GanzzahlEreignistyp
$6GanzzahlWert variiert gemäß Ereignistyp
$0Lange GanzzahlWenn 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)

  • Ist Ereignis gleich 0, gibt $6 den Code der Taste zurück, die das Ereignis aufruft.
  • Ist Ereignis gleich 1 oder 2, zeigt $6 an, ob auf eine Referenz einfach oder doppelt geklickt wurde.
  • Ist $6 gleich 0, wurde keine Referenz ausgewählt. Ist $6 gleich 1, wurde eine Referenz ausgewählt.

Methode wird aufgerufen, wenn Sie folgende Aktionen ausführen:

  • Einfacher oder doppelter Mausklick auf eine Referenz (Hypertext Link, 4D oder Html-Ausdruck)
  • Rechter Mausklick unter Windows, ctrl-Taste + Mausklick auf Macintosh. Unter Windows erscheint dann ein DropDown-Menü, auf Macintosh ein PopUp-Menü. Beide Menüs zeigen die Liste der Datenfelder. Wegen besserer Kompatibilität empfiehlt es sich, Ereignis 4 (wr on right click) zu verwenden.
  • Ist Ereignis gleich 3, betrifft $6 die Absatzauswahl. Dreifaches Klicken auf eine Referenz ist möglich, außer eine aufgerufene Ereignismethode wurde für den Doppelklick eingerichtet und von $0=1 abgefangen. In diesem Fall ist $6 nicht signifikant.
  • Ist Ereignis gleich 4 (wr on right click), gibt $6 an, welche Art des Kontextmenüs angezeigt wird – je nachdem, wo der Klick ausgeführt wird:
    - Bei $6 gleich 1 erscheint das Kontextmenü vom Typ 1 (Klick in Kopf- bzw. Fußteil).
    - Bei $6 gleich 2 erscheint das Kontextmenü vom Typ 2 (Klick in den Text des Hauptteils).
    - Bei $6 gleich 3 erscheint das Kontextmenü vom Typ 3 (Klick auf ein Bild im Hauptteil).
  • Ist Ereignis gleich 5, gibt $6 an, ob ein Bereich aktiviert wurde. Bei $6 gleich 0 ist der 4D Write Bereich deaktiviert. Bei $6 gleich 1 ist der 4D Write Bereich aktiviert.
  • Ist Ereignis gleich 7 und der Druckauftrag ein Serienbrief, zeigt $6 die Nummer der verwendeten Tabelle. Bei einfachem Druck ist $6 gleich 0.
  • Ist Ereignis gleich 8 (im Lineal wird eine Aktion ausgeführt), gibt $6 keinen signifikanten Wert zurück. Initialisieren Sie $0 mit 1, wenn im Lineal keine Aktion stattfinden soll.
  • Ist Ereignis gleich 9, gibt $6 an, ob Ränder im Dokument neu gesetzt wurden. Bei $6 gleich 0 wurden die Ränder im Dokumententeil neu gesetzt, bei $6 gleich 1 im Kopfteil, bei $6 gleich 2 im Fußteil.
  • Ist Ereignis gleich 13, wird Methode automatisch alle X Ticks (1 Tick = 1/60stel Sekunde) generiert, unabhängig von den Benutzeraktionen. Der Timer ist besonders hilfreich zum Einrichten automatischer Sicherungen der Dokumente in bestimmten Zeitabständen. Er erzeugt standardmäßig alle 3600 Ticks (60 Sekunden) ein Ereignis. Diese Frequenz können Sie über den Befehl WR SET AREA PROPERTY ändern. Achten Sie darauf, dass Methode nicht zu lange Prozesszeiten ausführt, da die wiederholte Ausführung der Methode die Anwendung signifikant verlangsamen kann.

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

 
EIGENSCHAFTEN 

Produkt: 4D Write
Thema: WR Hilfsmittel
Nummer: 89174

 
GESCHICHTE 

Geändert: 4D Write 2004.1

 
SIEHE AUCH 

WR Get on event method
WR ON ERROR

 
ARTIKELVERWENDUNG

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)