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 composant sans son nom ?


Sujet :

Langage Delphi

  1. #1
    Membre habitué Avatar de aliwassem
    Inscrit en
    Janvier 2004
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 293
    Points : 157
    Points
    157
    Par défaut Comment utiliser un composant sans son nom ?
    salut les amis

    je veux changer la coulor d un composant par example Button1 mais je veux pas utiliser son nom commeButton1.color := clred qu est ce que je veux exactement utiliser une autre methode sachant que je connais son Component[]

    merci d avance

  2. #2
    Membre expert
    Avatar de Bestiol
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 515
    Points : 3 894
    Points
    3 894
    Par défaut
    Ben est-ce que ça ne te suffirait pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TButton(Components[IdxBouton]).Color := clRed;
    Ou alors j'ai pas bien compris ?
    Mea est trop forte, elle flotte : mea coule pas !

    Basically this boot sector (Win95) code is 32 bit extension for a 16 bit patch to an 8 bit boot sector originally coded for a 4 bit microprocessor, written by a 2 bit company, that can't stand 1 bit of competition.

    olance.developpez.com
    Servez-vous, profitez, abusez de la FAQ Delphi !!

  3. #3
    Membre habitué Avatar de aliwassem
    Inscrit en
    Janvier 2004
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 293
    Points : 157
    Points
    157
    Par défaut Voila le code
    salut

    voila le code
    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
     
    var
    TB: TButton;
    .
    .
    .
    procedure
    TB:=Tbutton.Create(Form1);
    with TB do
    TB.name := 'F';
    TB.parent := Form1;
    .
    .
    .
    end;
    alors quand j ai fais creer ca et je veux utiliser par exemple ce codeil me donne un message d erreur que le composant F il n existe pas alors je veux utiliser une autre methode voila

    merci

  4. #4
    Membre expert
    Avatar de Bestiol
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 515
    Points : 3 894
    Points
    3 894
    Par défaut
    aaah c'est normal !

    Ton composant est créé à l'exécution, et reçoit donc son nom à ce moment-là !
    Le compilateur n'est donc pas en mesure de savoir ce que représente ton F.

    Si tu as déclaré TB de manière globale ou que sa portée est valide là où tu en as besoin, tu peux faire :
    Sinon il reste cette méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TButton(FindComponent('F')).Color := clRed;
    vala vala
    Mea est trop forte, elle flotte : mea coule pas !

    Basically this boot sector (Win95) code is 32 bit extension for a 16 bit patch to an 8 bit boot sector originally coded for a 4 bit microprocessor, written by a 2 bit company, that can't stand 1 bit of competition.

    olance.developpez.com
    Servez-vous, profitez, abusez de la FAQ Delphi !!

  5. #5
    DMO
    DMO est déconnecté
    Membre averti
    Avatar de DMO
    Profil pro
    Inscrit en
    Février 2004
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 290
    Points : 343
    Points
    343
    Par défaut
    Il ne faut pas confondre la référence d'un objet et son nom. Cette confusion est néanmoins compréhensive puisque lorsque tu renommes un composant de ta form, Delphi renomme la référence qui se trouve dans cette forme pour la faire correspondre au nom.

    Là tu crée ton composant dynamiquement, donc tu n'as que la ou les références que tu utilises pour y accéder. En l'occurence c'est effectivement TB.

    Il est néanmoins également possible de retrouver un composant lorsqu'on a son nom : http://delphi.developpez.com/faq/?page=creadyna
    « La simplicité est la sophistication suprême » (Léonard de Vinci)

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

Discussions similaires

  1. [Runtime] comment utiliser une appli sans access
    Par Zetophe dans le forum Runtime
    Réponses: 3
    Dernier message: 24/04/2007, 13h31
  2. Réponses: 14
    Dernier message: 22/04/2006, 21h59
  3. Utilisation de composant sans Form est elle possible
    Par Hypollite76 dans le forum Composants VCL
    Réponses: 26
    Dernier message: 01/12/2005, 12h07
  4. Comment utiliser le composant TUDPSocket ?
    Par zodd dans le forum Web & réseau
    Réponses: 11
    Dernier message: 16/11/2005, 12h09

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