Précédent   Forum des professionnels en informatique > Autres langages > Pascal > Lazarus

Lazarus Forum d'entraide sur Lazarus, le RAD de FreePascal, à la poursuite de Delphi

Réponse
 
Outils de la discussion
Vieux 31/10/2008, 16h20   #1 (permalink)
Membre du Club
 
Date d'inscription: novembre 2006
Localisation: Caen
Âge: 50
Messages: 89
Par défaut Une même procédure KeyPressed sur 20 Tedit

Bonjour,


Dans une Form, j'ai 20 Tedits dont les procédures KeyPress(Sender: TObject; var Key: char) sont identiques hormis le fait que chacune d'entre elles fait référence au Tedit dont elle est issue (Ex.[...] edit1.Text:='0'+key; [...] pour le premier Tedit, [...] edit2.Text:='0'+key; [...] pour le second, etc). Comme la procédure comprend plus d'une cinquantaine de lignes, j'aurais aimé utiliser une seule procédure (une surcharge ?) pour les 20 Tedits.

En attendant, j'ai placé le code de la procédure dans la KeyPress de la Form et utilisé FindComponent (Ex. [...] TEdit(FindComponent('Edit' + IntToStr(i))).Text:='0'+key; [...] remplace le code ci-dessus... et selon le Tedit qui est "focused", la valeur de i varie...). Cela fonctionne correctement mais la méthode ne me semble pas élégante et ne fait que palier ma carence.

Aussi qq'1 pourrait-il m'expliquer comment procéder avec une surcharge ou m'indiquer un article sur une procédure incluant une variable propre à la procédure de l'objet surchargé (ex. key) ?

Merci. Cordialement.

Dernière modification par Alcatîz ; 07/12/2008 à 14h37.
selzig est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 31/10/2008, 16h29   #2 (permalink)
Membre habitué
 
Date d'inscription: juillet 2007
Messages: 151
Par défaut

Bonjour,

Essaye cela :
Déclare une fonction utilisée par chaque TEdit.
Ensuite, dans cette fonction, récupère les informations de type et le nom du TEdit en cours avec le Sender qui est passé en paramètre.



@+
Chris

Dernière modification par chris37 ; 31/10/2008 à 17h17.
chris37 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 31/10/2008, 16h52   #3 (permalink)
Rédacteur/Modérateur
 
Avatar de wormful_sickfoot
 
Date d'inscription: avril 2002
Localisation: Montpellier (34)
Âge: 24
Messages: 1 880
Par défaut

Ou sinon, tu peux faire un pointer sur une procédure commune à tous tes TEdit en lui passant le bon paramètre (valeur de i ou key ?)
__________________
wormful_sickfoot - Responsable Pascal - Rédacteur Pascal, Delphi et Java - Modérateur Pascal
wormful_sickfoot est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/11/2008, 09h08   #4 (permalink)
Membre du Club
 
Date d'inscription: novembre 2006
Localisation: Caen
Âge: 50
Messages: 89
Par défaut En effet...

Bonjour à tous deux.

En effet cela fonctionne. Je me suis compliqué la vie. Au lieu d'utiliser une procédure commune genre TForm1.EditxKeyPress(Sender: Tobject;var Key: char), j'ai essayé TForm1.EditxKeyPress(Sender: Tobject;editx:Tedit;var Key: char) provoquant une erreur..
Merci. A bientôt. Cordialement. Gilles
selzig est déconnecté   Envoyer un message privé Réponse avec citation
NEWS PASCALF.A.Q PASCALTUTORIELSEXERCICESSOURCESCOMPILATEURSOUTILSLIVRES

Réponse

Précédent   Forum des professionnels en informatique > Autres langages > Pascal > Lazarus



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h41.


Vos questions techniques : forum d'entraide Pascal - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2009 www.developpez.com - Legal informations.