Précédent   Forum des professionnels en informatique > Autres langages > Pascal > Lazarus
Lazarus Forum d'entraide sur Lazarus, l'EDI RAD multiplateforme basé sur Free Pascal
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 31/10/2008, 16h20   #1
Membre expérimenté
 
Homme Gilles
Inscription : novembre 2006
Messages : 558
Détails du profil
Informations personnelles :
Nom : Homme Gilles
Âge : 53
Localisation : France, Calvados (Basse Normandie)

Informations forums :
Inscription : novembre 2006
Messages : 558
Points : 503
Points : 503
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 00
Vieux 31/10/2008, 16h29   #2
Membre Expert
 
Avatar de chris37
 
Homme
Directeur des systèmes d'information
Inscription : juillet 2007
Messages : 376
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 43
Localisation : France

Informations professionnelles :
Activité : Directeur des systèmes d'information
Secteur : Finance

Informations forums :
Inscription : juillet 2007
Messages : 376
Points : 1 407
Points : 1 407
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 00
Vieux 31/10/2008, 16h52   #3
Rédacteur/Modérateur
 
Avatar de wormful_sickfoot
 
Inscription : avril 2002
Messages : 2 092
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : avril 2002
Messages : 2 092
Points : 2 314
Points : 2 314
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 - Rédacteur et Modérateur Pascal
wormful_sickfoot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/11/2008, 09h08   #4
Membre expérimenté
 
Homme Gilles
Inscription : novembre 2006
Messages : 558
Détails du profil
Informations personnelles :
Nom : Homme Gilles
Âge : 53
Localisation : France, Calvados (Basse Normandie)

Informations forums :
Inscription : novembre 2006
Messages : 558
Points : 503
Points : 503
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 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 05h45.


 
 
 
 
Partenaires

Hébergement Web