Les types gestionnaire d'événement sont des procédures

De RAD Studio
Aller à : navigation, rechercher

Remonter à Les types d'événements sont des types de pointeurs de méthodes


Bien que le compilateur vous permet de déclarer des types pointeur de méthode qui sont des fonctions, vous ne devrez jamais le faire pour la gestion d'événements. Comme une fonction vide renvoie un résultat non défini, un gestionnaire d'événement vide qui était une fonction ne pourra pas toujours être correct. Pour cette raison, tous vos événements et leurs gestionnaires d'événements associés doivent être des procédures.

Bien qu'un gestionnaire d'événement ne puisse pas être une fonction, vous pouvez toujours obtenir les informations à partir du code du développeur de l'application en utilisant les paramètres var. Lorsque vous effectuerez ceci, vérifiez que vous affectez une valeur correcte au paramètre avant d'appeler le gestionnaire afin de ne pas rendre obligatoire la modification de la valeur par le code de l'utilisateur.

Un exemple de transmission des paramètres var à un gestionnaire d'événement est fourni par l'événement OnKeyPress, de type TKeyPressEvent. TKeyPressEvent définit deux paramètres, l'un indiquant l'objet ayant généré l'événement et l'autre la touche enfoncée :

type
  TKeyPressEvent = procedure(Sender: TObject; var Key: Char) of object;

Normalement, le paramètre Key contient le caractère enfoncé par l'utilisateur. Toutefois dans certaines circonstances, l'utilisateur de composant peut souhaiter changer ce caractère. Par exemple, pour forcer tous les caractères en majuscules dans un éditeur. Dans un cas comme celui-là, l'utilisateur doit définir le gestionnaire suivant pour gérer les frappes de touche :

procedure TForm1.Edit1KeyPressed(Sender: TObject; var Key: Char);
begin
  Key := UpCase(Key);
end;

Vous pouvez également utiliser les paramètres var pour permettre à l'utilisateur de redéfinir la gestion par défaut.

Voir aussi