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

Delphi Discussion :

Recherche composant ?


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti

    Inscrit en
    Mai 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 25
    Par défaut Recherche composant ?
    Bonjour !

    Je crée un projet concernant les graphes par coloration des sommets.

    Pour le dessin du graphe aucun soucis, j'utilise un TPaintBox pour le tracer des arrêtes et des TShape dynamique pour les sommets.

    Les TShape crées dynamiquement sont lié au TPaintBox par la commande suivante : Sommet.Parent := ZoneGraphe;

    Sachant que Sommet et mon TShape et ZoneGraphe mon TPaintBox.

    Mon soucis et que je n'arrive pas a retrouver mes TShape créer dynamiquement avec FindComponents.

    Bien entendu c'est la première fois de ma vie que j'utilise le FindComponents sur des composant créer dynamiquement.

    Si quelqu'un a une solution, je veux bien un petit coup de main !

    Merci d'avance.

  2. #2
    Expert confirmé

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Par défaut
    Tu utilises bien FindComponent sur l'owner de tes composants (ce que tu transmets comme seul paramètre du constructeur) ?

    Aussi, as-tu bien nommé les composants que tu créais dynamiquement, en modifiant leur propriété Name ? Es-tu sûr de les rechercher avec le même nom ?
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  3. #3
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    tu peux toujours faire une boucle sur la proprietee "components" ....

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 28
    Par défaut
    Je me souviens avoir déjà eu ce problème sur un projet

    Il me semble qu'il y avait un lien avec l'ordre dans lequel j'initialisais les propriétés Name et Parent.
    "Parent" puis "Name" premettais de retrouver avec findComponent fonctionnait alors que "Name" puis "Parent" renvoyais nil (ou inversement).

  5. #5
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    Un peu de précisions sur les problèmes rencontrés ... ton code par exemple !

  6. #6
    Membre averti

    Inscrit en
    Mai 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 25
    Par défaut
    Désolé, j'ai pas beaucoup de temps libre, donc dur dur de pouvoir revenir rapidement sur les forums...

    Voici la création dynamique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            Sommet := TShape.Create(ZoneGraphe);
            Sommet.Shape := stCircle;
            Sommet.Width := 20;
            Sommet.Height := 20;
            Sommet.Left := X - 10;
            Sommet.Top := Y - 10;
            Sommet.OnMouseDown := ShapeMouseDown;
            Sommet.Tag := Length(Graphe) - 1;
            Sommet.Parent := ZoneGraphe;
            Sommet.Name := 'Sommet' + IntToStr(Length(Graphe) - 1);
    Voici la recherche des composant de base que j'ai essayée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      showmessage(inttostr(ZoneGraphe.ComponentCount)); // test
      For Cmp := 0 To ZoneGraphe.ComponentCount - 1 Do
        begin
          if ZoneGraphe.Components[Cmp] Is TShape Then
             begin
               if (ZoneGraphe.Components[Cmp] As TShape).Tag = 1 Then
               (ZoneGraphe.Components[Cmp] As TShape).Brush.Color := clgreen;
             end;
          end;
    La recherche est pas tres propres, mais ce n'etait qu'un test.

    Le code pourtant me semble correct... est ce que mon compilateur pourrais avoir un problème ?

    Encore merci d'avoir répondu aussi vite !

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

Discussions similaires

  1. recherche composant skin pour modifier le look d'une appli
    Par kivoch dans le forum Composants VCL
    Réponses: 5
    Dernier message: 02/09/2005, 15h06
  2. Recherche composant tableau dynamique
    Par nikhil dans le forum Composants VCL
    Réponses: 4
    Dernier message: 28/07/2005, 14h02
  3. Recherche composant texte + icone
    Par eag35 dans le forum MFC
    Réponses: 1
    Dernier message: 01/04/2005, 17h26
  4. recherche composant pour dialoguer avec modem
    Par newbie qui galere dans le forum Bases de données
    Réponses: 1
    Dernier message: 15/10/2004, 23h20
  5. recherche composant hybride entre le ComboBox et le DBLookup
    Par Calixte dans le forum Bases de données
    Réponses: 3
    Dernier message: 14/06/2004, 13h32

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