Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > 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)
Futur Membre du Club
 
Date d'inscription: novembre 2006
Localisation: Caen
Âge: 50
Messages: 35
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 du Club
 
Date d'inscription: juillet 2007
Localisation: Tours (France - 37)
Âge: 40
Messages: 88
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: 23
Messages: 1 795
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)
Futur Membre du Club
 
Date d'inscription: novembre 2006
Localisation: Caen
Âge: 50
Messages: 35
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 PASCALTUTORIELS PASCALSOURCESCOMPILATEURSOUTILSLIVRES

Réponse

Précédent   Forum des développeurs > 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 +1. Il est actuellement 02h07.


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
Copyright 2000-2009 www.developpez.com - Legal informations