4D Write v14WR APPELER SUR EVENEMENT |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D Write v14
WR APPELER SUR EVENEMENT
|
WR APPELER SUR EVENEMENT ( zone ; événement ; méthode ) | ||||||||
Paramètre | Type | Description | ||||||
zone | Entier long |
![]() |
Zone 4D Write | |||||
événement | Entier long |
![]() |
Code de l'événement à intercepter | |||||
méthode | Chaîne |
![]() |
Nom de la méthode à exécuter | |||||
La commande WR APPELER SUR EVENEMENT filtre les événements avant qu’ils soient traités par 4D Write. Lorsqu’un événement donné survient, la méthode dont le nom est passé en troisième paramètre est exécutée.
Si zone vaut 0, la commande WR APPELER SUR EVENEMENT s’applique à l’ensemble des zones 4D Write. Dans ce cas, il est préférable de passer cette commande dans la Méthode base Sur ouverture (qui est exécutée à l’ouverture de la base). Si une zone a sa propre méthode d’événement installée, celle-ci est prioritaire sur la méthode d’événement installée sur l’ensemble des zones.
Passez dans le paramètre événement une valeur indiquant l'événement à intercepter. Vous pouvez utiliser les constantes suivantes, placées dans le thème "WR Evénements" :
Constante | Type | Valeur | Commentaire |
wr sur touche | Entier long | 0 | Appui d'une touche (y compris flèches, retours chariot, tabulations…) |
wr sur double clic | Entier long | 1 | Double-clic |
wr sur simple clic | Entier long | 2 | Clic souris unique |
wr sur triple clic | Entier long | 3 | Trois clics rapprochés |
wr sur clic droit | Entier long | 4 | Clic avec le bouton droit |
wr sur activation | Entier long | 5 | Zone 4D Write activée ou désactivée |
wr sur impression | Entier long | 7 | Impression du document |
wr sur règle | Entier long | 8 | Changement dans la règle |
wr sur mise a jour références | Entier long | 9 | Recalcul des références en provenance de 4D |
wr sur fermeture | Entier long | 10 | Fermeture d’une fenêtre ou d’une zone 4D Write |
wr sur glisser | Entier long | 11 | Un objet est glissé |
wr sur déposer | Entier long | 12 | Un objet est déposé |
wr sur minuteur | Entier long | 13 | Fin d'un cycle du minuteur |
Pour activer méthode pour tous les événements listés ci-dessus, passez -1 dans événement.
méthode est la méthode 4D qui est appelée quand l’événement passé en second paramètre est détecté. Elle doit comporter 7 paramètres qui devront être déclarés en vue d’une éventuelle compilation.
Paramètres | Type | Description |
$1 | Entier long | Référence de la zone 4D Write |
$2 | Entier | Touche Maj |
$3 | Entier | Touche Alt (Windows), touche Option (Mac OS) |
$4 | Entier | Touche Ctrl (Windows), touche Commande (Mac OS) |
$5 | Entier | Type d’événement qui a provoqué l’appel |
$6 | Entier | Sa valeur varie en fonction du paramètre événement |
$0 | Entier long | Si méthode retourne une valeur |
L'utilisation d'un minuteur dans une zone permet notamment de mettre en oeuvre un mécanisme de sauvegardes de sécurité automatiques des documents en cours d’édition. Vous pouvez modifier la fréquence du minuteur à l'aide de la commande WR FIXER PROPRIETE ZONE. Attention, la méthode ne doit pas effectuer de traitement trop lourd, car son exécution répétée peut ralentir significativement l’application.
Important : méthode renvoie 0 ou 1 dans $0. Si vous souhaitez que cette méthode prenne en compte l’événement, initialisez $0 à 0. En revanche, si vous ne souhaitez pas en tenir compte, initialisez $0 à 1.
Pour illustrer ce point, imaginons le cas suivant : pour une raison quelconque, vous ne souhaitez pas qu’apparaisse le caractère “@” dans votre document. Dans ce cas, filtrez la saisie de tous les caractères apparaissant dans le document, initialisez $0 à 1 et lorsque $6 est égal au code de caractère de l’arobas, ignorez-le. Vous empêchez ainsi la frappe de ce caractère.
Note : Si vous filtrez la saisie de caractères, elle sera considérablement ralentie. En effet, un contrôle s’opérera sur chaque frappe.
Vous souhaitez, suivant l’événement filtré, appliquer un traitement :
`Méthode formulaire d’une base en mode "Menus créés"
Si(Evenement formulaire=Sur chargement)
WR APPELER SUR EVENEMENT(LaZone;wr sur touche;"MéthEvénement")
`Appel sur la frappe de caractères
WR APPELER SUR EVENEMENT(LaZone;wr sur activation;"MéthEvénement")
`Appel sur l’état de la zone (active ou désactive)
INACTIVER LIGNE MENU(2;1)
`Désactivation de la commande de menu "Changer polices"
WR FIXER PROPRIETE ZONE(LaZone;wr fréquence appel;54000)
`Appel du minuteur toutes les 15 mn
WR APPELER SUR EVENEMENT(LaZone;wr sur minuteur;"MéthEvénement")
`Mise en place de l'autosave
Fin de si
`Méthode MéthEvénement
C_ENTIER LONG($0;$1;$2;$3;$4;$5;$6)
Au cas ou
:($5=wr sur touche)
`Interception des touches
Si(($6=199)|($6=200))
`Si les codes ASCII correspondent à ceux des touches « »
BEEP
$0:=1
Sinon `On laisse l’événement à 4D Write
$0:=0
Fin de si
:($5=wr sur activation) `Interception du changement d’état de la zone (active ou désactivée)
Si($6=0)
`Si la zone est désactivée
INACTIVER LIGNE MENU(2;1)
`Désactivation de la commande de menu "Changer polices"
Sinon `Si la zone est active
ACTIVER LIGNE MENU(2;1)
`Activation de la commande de menu "Changer polices"
Fin de si
:($5=wr sur minuteur)
`Toutes les 15 mn
$NomDoc:="C:\\Temp\\Docs\\LaZone.4W7"
WR SAUVER DOCUMENT(LaZone;$NomDoc;"4WR7")
Fin de cas
Produit : 4D Write
Thème : WR Utilitaires
Numéro :
89174
Nom intl. : WR ON EVENT
Modifié : 4D Write 2004.1
WR APPELER SUR ERREUR
WR Lire methode sur evenement
4D Write - Langage ( 4D Write v11.6)
4D Write - Langage ( 4D Write v12)
4D Write - Langage ( 4D v13)
4D Write - Langage ( 4D Write v14)
4D Write - Langage ( 4D Write v14 R2)
4D Write - Langage ( 4D Write v14 R3)
4D Write - Langage ( 4D Write v14 R4)