Salut,

Voici mon problème: En m'inspirant de la FAQ, je souhaitais autoriser uniquement la saisie des chiffres dans mes TEdit en utilisant ce code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Procedure SelectionNumeriqueOnEdit(Sender: TObject;var Key: char);
Begin
  If not (Key in ['0'..'9', DecimalSeparator, Chr(VK_BACK), Chr(VK_DELETE)]) then
  Key := #0;
  if Key = DecimalSeparator then
    if Pos(DecimalSeparator, (Sender AS TEdit).Text) <> 0 then
      Key := #0;
End;
Qui fonctionne nickel si j'écris ma procédure dans l'unité qui contient mon TEdit.

Mais en plaçant cette procédure (en public) dans une unité globale, et en tentant, pour chaque form, t'utiliser findcomponent (et IS TEDit) pour appliquer cette procédure à tous mes évènements OnKeyPress de mes Edits, ça ne passe pas.

Même si j'execute ce code sur un seul de mes Edit (qui est sur Form1 par exemple):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Edit1.OnKeyPress:= TGlobale.SelectionNumeriqueOnEdit;
j'ai un message d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
[Erreur]E2009 Types incompatibles : 'pointeur de méthode et procédure normale'
Quelqu'un saurait-il comment affecter ma procedure à tous mes Edits, quelque soit leurs form sur laquelle ils se situent?

Merci pour tout,

A+.