IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Une même procédure KeyPressed sur 20 Tedit [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    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.

  2. #2
    Membre émérite
    Avatar de chris37
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2007
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 378
    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

  3. #3
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 466
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 466
    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 ?)

  4. #4
    Invité
    Invité(e)
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] cumul de valeurs saisies dans une même cellule - Xl sur IPAD
    Par jmp365 dans le forum Excel
    Réponses: 2
    Dernier message: 29/07/2014, 16h21
  2. [AC-2007] Affecter une même procédure à plusieurs controles d'un formulaire
    Par Jeannot45 dans le forum VBA Access
    Réponses: 8
    Dernier message: 29/06/2013, 09h14
  3. appliquer la même procédure évènementielle sur plusieurs contrôles
    Par homerlehamster dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 31/08/2010, 09h48
  4. Réponses: 9
    Dernier message: 24/05/2010, 02h05
  5. Réponses: 2
    Dernier message: 24/09/2007, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo