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

Langage Delphi Discussion :

Comment utiliser un objet via une variable concaténée ?


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 122
    Points : 98
    Points
    98
    Par défaut Comment utiliser un objet via une variable concaténée ?
    Bonjour à tous,

    j'ai un souci, j'aimerai utiliser un objet mais en utilisant une variable et ajoutant une chaîne à cette variable comme ci dessous, ça ne fonctionne pas mais c'est pour l'idée. Auriez vous une solution ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    procedure TfrmQual.MiseJour;
    var
       i : integer;
       ii, NomEdit : string;
    begin
         i := 1;
         dtmBanc.qQual.Params[0].AsString := edDossier.Text;
         dtmBanc.qQual.Open;
         dtmBanc.qQual.First;
         while not dtmBanc.qQual.Eof do
         begin
              ii := IntToStr(i);
              NomEdit := 'edDebOp'+ii;
              NomEdit.Text := 'test';
              //'edDebOp'+ii.Text := dtmBanc.qQualNOM_OPERATEUR.AsString;
              i := i + 1;
              dtmBanc.qQual.Next;
         end;
    end;

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Tu peux utiliser FindComponent dans ton cas.
    Fais une recherche sur le forum, tu trouveras plusieurs exemples.

    @+ Claudius

  3. #3
    Membre régulier
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 122
    Points : 98
    Points
    98
    Par défaut
    Je ne comprend pas trop comment fonctionne FindComponent.

  4. #4
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Re,

    Comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     TEdit(FindComponent('edDebOp' + IntToStr(i)).Text := dtmBanc.qQualNOM_OPERATEUR.AsString;
    [edit]
    J'avais oublié: Bienvenue sur DVP

    @+ Claudius

  5. #5
    Membre régulier
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 122
    Points : 98
    Points
    98
    Par défaut
    ok merci beaucoup.

  6. #6
    Membre régulier
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 122
    Points : 98
    Points
    98
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     TEdit(FindComponent('edDebOp' + IntToStr(i))).Text := dtmBanc.qQualNOM_OPERATEUR.AsString;
    Petite correction il manquait une parenthèse juste avant . Text pour que cela fonctionne.

    Encore merci.

  7. #7
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par sly60 Voir le message
    Petite correction il manquait une parenthèse juste avant . Text pour que cela fonctionne.
    Exact, elle m'avait échappé celle-là.

    Un p'tit tag si c'est OK ?

  8. #8
    Membre régulier
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 122
    Points : 98
    Points
    98
    Par défaut
    C'est possible aussi avec une récupération de donnée dans la base de donnée ? Je met la ligne de code mais ça ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dtmBanc(FindComponent('qQualDB'+IntToStr(nbEd)+'DEF'+IntToStr(ii))).AsInteger

  9. #9
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Bonjour
    Citation Envoyé par sly60 Voir le message
    C'est possible aussi avec une récupération de donnée
    dans la base de donnée ?
    Si tu parles d'accéder à un champ d'une table, non ça ne marchera pas. Un champ de données n'hérite pas de TComponent.

    Utilise FieldByName de TField:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dtmBanc.FieldByName('qQualDB'+IntToStr(nbEd)+'DEF'+IntToStr(ii))).AsInteger
    @+ Claudius

  10. #10
    Membre régulier
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 122
    Points : 98
    Points
    98
    Par défaut
    Encore une fois merci beaucoup, j'aurai cherché longtemps sinon je pense.

  11. #11
    Membre régulier
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 122
    Points : 98
    Points
    98
    Par défaut
    Arf j'ai cette erreur.

    [Erreur] frm_QualRap.pas(104): Identificateur non déclaré : 'FieldByName'

    et celle la aussi

    [Erreur] frm_QualRap.pas(104): 'END' attendu(e) mais ')' trouvé(e)

    Je met la ligne complète ça vient peut etre de la.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TEdit(FindComponent('edDb'+IntToStr(nbEd)+'Def'+IntToStr(ii))).Text := dtmBanc.FieldByName('qQualDB'+IntToStr(nbEd)+'DEF'+IntToStr(ii))).AsInteger;

  12. #12
    Membre régulier
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 122
    Points : 98
    Points
    98
    Par défaut
    Pas de solution ?

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Points : 397
    Points
    397
    Par défaut
    N'as tu pas tout simplement une parenthèse fermante en trop ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TEdit(FindComponent('edDb'+IntToStr(nbEd)+'Def'+IntToStr(ii))).Text := dtmBanc.FieldByName('qQualDB'+IntToStr(nbEd)+'DEF'+IntToStr(ii)).AsInteger;

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 28/08/2009, 11h09
  2. Réponses: 2
    Dernier message: 19/03/2009, 23h23
  3. [POO] Accéder à un attribut d'un objet via une variable
    Par iLoLo21 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/11/2008, 12h36
  4. [XSLT]comment utiliser xsl:if avec une variable
    Par dbill dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 22/08/2007, 13h23
  5. Réponses: 6
    Dernier message: 29/06/2007, 12h43

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