Le type de renvoi des gestionnaires d'événement est void (C++)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Définition du type de gestionnaire


Le type de renvoi des gestionnaires d'événements doit être void. Mais cela ne vous empêche pas de récupérer des informations en provenance du code de l'utilisateur : il suffit de passer les arguments par référence. Si vous procédez ainsi, n'oubliez pas d'attribuer à l'argument une valeur correcte avant d'appeler le gestionnaire, de façon à ne pas rendre obligatoire la modification de la valeur par le code de l'utilisateur.

L'événement frappe de touche de type TKeyPressEvent est un exemple de transmission d'arguments à un gestionnaire d'événements, par référence. TKeyPressEvent définit deux arguments : un pour indiquer quel objet a généré l'événement, et un autre pour indiquer quelle touche a été enfoncée :

typedef void __fastcall (__closure *TKeyPressEvent)(TObject *Sender, Char &Key);

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

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, Char &Key)
{
  Key = UpCase(Key);
}

Vous pouvez également utiliser des arguments passés par référence pour permettre à l'utilisateur de redéfinir la gestion par défaut.

Voir aussi