La commande PV APPELER SUR EVENEMENT est utilisée pour lier une méthode à un événement 4D View. Chaque fois que l’événement survient dans la zone 4D View, la méthode est exécutée.
Pour définir le paramètre événement, utilisez les constantes du thème PV Événements.
La méthode appelée reçoit 6 paramètres de type Entier long et retourne un Booléen dans $0 :
$1 : Référence de la zone 4D View
$2 : Événement
$3 : Code de touche de modification
$4 : Numéro de la colonne
$5 : Numéro de la ligne
$6 : Code ASCII de la touche (si l’événement est un clic, un clic droit ou un double-clic, $6 vaut 0)
Le paramètre $3 peut contenir une des valeurs suivantes (ces valeurs sont additionnées en cas de combinaison de touches) :
0 | Aucune |
512 | Touche Majuscule |
2048 | Touche Alt |
4096 | Touche Ctrl (Windows) / Commande (Mac OS) |
- Gestion des clics (événements pv sur clic, pv sur clic droit, pv sur double clic et pv sur clic contextuel) :
- si l’événement (clic, clic droit, double-clic ou clic contextuel) est effectué dans une cellule, $4 retourne le numéro de colonne et $5 retourne le numéro de ligne. S'il est effectué sur un en-tête de ligne, le paramètre $4 vaut 0. S'il est effectué sur un en-tête de colonne, le paramètre $5 vaut 0. S'il est effectué dans l’angle supérieur gauche de la zone, $4 et $5 retournent 0.
- l’événement pv sur clic contextuel est appelé au moment où l’utilisateur relâche le bouton de la souris ; l’événement pv sur clic droit, quant à lui, est appelé au moment où le bouton est enfoncé. Ces deux événements permettent de mettre en place une interface utilisant des pop up menus contextuels conforme aux standards de chaque plate-forme : l’événement pv sur clic contextuel correspond plutôt au fonctionnement de Windows, l’événement pv sur clic droit à celui de Mac OS. Les deux événements peuvent être utilisés simultanément.
- en cas de clic, clic droit, double-clic ou clic contextuel, $6 vaut 0.
- Changement de sélection (événement pv sur nouvelle sélection) :
- si la nouvelle sélection comprend plusieurs cellules, colonnes ou lignes, $4 et $5 retournent 0.
- si la nouvelle sélection comprend une seule cellule, $4 et $5 retournent le numéro de la colonne et de la ligne de la cellule.
- si la nouvelle sélection est une colonne, $4 retourne le numéro de la colonne et $5 retourne 0.
- si la nouvelle sélection est une ligne, $4 retourne 0 et $5 retourne le numéro de la ligne.
- Touches de fonction : dans le cadre de l’événement pv sur frappe clavier, si une touche de fonction a été activée, le paramètre $6 retourne 0. Dans ce cas, utilisez la variable système Keycode de 4D pour connaître le code ASCII de la touche de fonction activée.
- Tris : L’événement pv sur tri colonne est généré juste après qu’une colonne ait été triée. Il permet ainsi de contrôler les actions de l’utilisateur. Dans ce cas, $6 reçoit une valeur indiquant l’ordre de tri. Cette valeur peut être comparée aux constantes suivantes, placées dans le thème PV Tri entêtes :
Constante |
Type |
Valeur |
pv tri croissant |
Entier long |
2 |
pv tri décroissant |
Entier long |
3 |
- Redimensionnement : Les événements pv sur redimensionnement col et pv sur redimensionnement ligne sont renvoyés lorsqu’une colonne ou une ligne est redimensionnée par l’utilisateur. Ils ne sont pas renvoyés si les colonnes ou les lignes sont redimensionnées par le langage (via les commandes PV FIXER LARGEUR COLONNES ou PV FIXER HAUTEUR LIGNES).
Si $0 vaut Vrai, l’événement n'est pas pris en compte.
Si $0 vaut Faux, l’événement est pris en compte.
Note : En vue d'une compilation de la base, il est nécessaire de déclarer les paramètres $0 en Booléen et $1 à $6 en Entier long, même si tous ne sont pas utilisés.
Si le paramètre zone est égal à 0, la commande PV APPELER SUR EVENEMENT s’applique à l’ensemble des nouvelles zones 4D View. Dans ce cas, il est préférable de placer cette commande dans la Méthode base Sur ouverture, exécutée à l’ouverture de la base.
Pour désinstaller la méthode d'appel sur événement, il suffit d'exécuter la commande PV APPELER SUR EVENEMENT avec une chaîne vide en troisième paramètre.
L’utilisateur a cliqué sur un en-tête de colonne pour effectuer un tri. La méthode MP_Evénement permet de savoir quelle est la colonne qui a été triée et dans quel ordre le tri a été effectué.
Un double-clic sur un en-tête de colonne provoque le redimensionnement de la colonne. Cependant, un double-clic génère une séquence de deux événements : pv sur clic puis pv sur double clic.
Par conséquent, si le tri a été autorisé via la commande PV FIXER PROPRIETE ZONE, un double-clic sur un en-tête provoquera d’abord le tri de la colonne puis son redimensionnement. Si vous souhaitez qu’un double-clic provoque uniquement le redimensionnement de la colonne, vous devez intercepter et effacer l’événement pv sur clic. En effet, l’événement pv sur clic est généré juste avant que le tri soit effectué. Pour cela, il suffit d’installer une méthode qui sera appelée lors de l’événement pv sur clic :