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

Composants VCL Delphi Discussion :

[Création de composant] Composant exclu de ComponentCount


Sujet :

Composants VCL Delphi

  1. #1
    Membre régulier Avatar de yoghisan
    Profil pro
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 113
    Points
    113
    Par défaut [Création de composant] Composant exclu de ComponentCount
    Bonjour,

    J'ai créé un nouveau composant TLigne et DANS ce composant, j'ai placé le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      For i:=0 To ComponentCount-1 Do
       If Components[i] Is TLigne Then
         showmessage(TLigne(Components[i]).name);
    et ca ne marche pas. Pour lui, ComponentCount=0...

    Je pense (peut-être à tord) qu'il compte le nombre composant dans mon nouveau composant.

    Bref, ca ne marche pas... comment faire pour que ca marche ?

  2. #2
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Pourquoi veux-tu que ce soit différent de 0 ?

    Components est une propriété de du composant lui-même. Si tu ne crées pas de composant en proposant ce TFigne comme composant propriétaire alors ComponentCoutn sera perpetuellement à Zéro et Componenents vide...

    Que veux-tu faire exactement ?
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  3. #3
    Membre régulier Avatar de yoghisan
    Profil pro
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 113
    Points
    113
    Par défaut
    Ce que je veux :

    L'idéal : Ca serait de compter le nombre de composant se trouvant sur le meme parent que mon composant TLigne (code inclu dans le composant).

    Mais si ca compte tous les composants quelque soit le parent, je m'en contenterai...

    J'espere que c'est clair ce que je dis...

  4. #4
    Membre régulier Avatar de yoghisan
    Profil pro
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 113
    Points
    113
    Par défaut
    Pour être plus claire (j'espère), j'ai vérifié avec l'aide:

    De la manière dont j'ai codé, ComponentCount compte bien le nombre de composant qu'il y a DANS mon composant.

    Ce que je veux, c'est compter le nombre de composant qu'il y a HORS de mon composant, c'est à dire, sur le nombre de composant qu'il y a sur le parent de mon composant.

  5. #5
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Il faut alors utiliser la propriété parent, attention elle n'est pas forcément à jour dés la création du composant. Il vaut mieux donc la tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Parent<>Nil Then
      For i:=0 To Parent.ComponentCount-1 Do 
       If Parent.Components[i] Is TLigne Then 
         showmessage(TLigne(Parent.Components[i]).name);
    Normalement il devrait se trouver au moins lui-même...
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  6. #6
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Non, je viens de dire une bêtise... Components dépend de Owner ( propriétaire ) il faut donc compter les composants comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Owner<>Nil Then 
      For i:=0 To Owner.ComponentCount-1 Do 
       If Owner.Components[i] Is TLigne Then 
         showmessage(TLigne(Owner.Components[i]).name);
    Si tu veux tester la notion de parent il faut le faire en ajoutant un test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Owner.Components[i].Parent=Self.Parent Then
    Attention aussi à la manière dont sont créés les composants. Il faut qu'ils soient tous sur le même propriétaire ( le Composant donné dans le create ). Du moins pour ceux que tu veux retrouver ensembles dans la boucle.
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  7. #7
    Membre régulier Avatar de yoghisan
    Profil pro
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 113
    Points
    113
    Par défaut
    Pufff, c'etait si simple mais je ne savais pas que l'on pouvait acceder (aussi simplement au parent).

    Et encore, merci beaucoup nono40...

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

Discussions similaires

  1. Problème avec la création d'un composant
    Par jeromelef dans le forum Composants VCL
    Réponses: 6
    Dernier message: 01/10/2005, 00h51
  2. Création d'un composant de maniere dynamique
    Par loupdeau dans le forum MFC
    Réponses: 19
    Dernier message: 28/02/2005, 17h10
  3. Création dynamique de composants et destruction
    Par cpdump dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/01/2005, 17h57
  4. aide sur création d'un composant
    Par laetus dans le forum C++Builder
    Réponses: 2
    Dernier message: 14/07/2004, 10h45
  5. Création d'un composant et couleurs
    Par gibet_b dans le forum Composants VCL
    Réponses: 4
    Dernier message: 06/07/2004, 13h44

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