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 :

ajouter une propriété name


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 121
    Points : 48
    Points
    48
    Par défaut ajouter une propriété name
    Bonjour.
    Je souhaiterais ajouter une propriété name à un objet dérivant de tpersistent mais pas de tcomponent.
    Il faudrait bien sur pouvoir accéder à cet objet par son nom comme pour un composant.

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 443
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 443
    Points : 5 863
    Points
    5 863
    Par défaut
    salut

    la propriete name existe sur tout les objet en fait elle est implemente depuis tobject

    pour ta recherche de TPersistent c'est a toi de gerer ta propre liste stringlist ou tcollection au choix


    @+ Phil

  3. #3
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 561
    Points : 3 955
    Points
    3 955
    Par défaut
    salut

    la propriete name existe sur tout les objet en fait elle est implemente depuis tobject

    pour ta recherche de TPersistent c'est a toi de gerer ta propre liste stringlist ou tcollection au choix


    @+ Phil
    C'est bien nouveau, cela !
    A titre d'information, consultez l'aide en ligne ou ouvrez l'unité System.pas (cette unité est implicitement utilisée dans tout unité Delphi).

    La propriété Name est implémentée à partir de TComponent pour cette
    branche de la VCL.

    Un objet TPersistent, si je me souviens bien, n'apparaîtra jamais dans l'inspecteur d'objet. La racine des objets accessible à partir de l'inspecteur est TComponent.
    Est-ce que cela répond à ta question ?


    Cdlt

    e-ric

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 121
    Points : 48
    Points
    48
    Par défaut
    Non, malheureusement, ça ne répond pas à ma question.
    Je souhaite ajouter une propriété name à l'objet TTreeNode.
    Je ne suis pas sur que ce soit possible, et si ça l'est, je ne sais pas comment faire.J'ai regardé comment cela est fait pour la classe TComponent, j'ai recopié les méthodes setname et setreference, mais ça n'a pas marché

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 443
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 443
    Points : 5 863
    Points
    5 863
    Par défaut
    salut

    apres verification,il n y'a pas de name pour le tobject
    mais uniquement a partir de Tcompoment effectivement

    a priorie tu veut voir les propriete dans l'inspecteur d'object ?
    le treenode ne se trouve pas dans l'inspecteur d'object c'est pour quoi je ne comprend pas ta demande

    que veut tu faire exactement ?

    si tu recherche un item selon la valeur afficher
    tu peut faire ceci :

    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
    function FindNode(Root: TTreeNode; Name: string): TTreeNode;
    var
      Temp: TTreeNode;
    begin
      Result := Root.GetFirstChild;
      while Result <> nil do
      begin
        if Result.Text = Name then  exit;
        Temp := FindNode(Result, Name);
        if Temp <> nil then
        begin
          Result := Temp;
          Exit;
        end;
        Result := Root.GetNextChild(Result);
      end;
    end;
    sinon utilise la propriete data pour lui affecter un objet ayant tes element suplementaire a ajouter

    @+ Phil

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 121
    Points : 48
    Points
    48
    Par défaut
    Je veux éviter de faire une boucle car le bur final est de gagner du temps.
    Je créé les nodes depuis un as400 qui pilote une application par l'intermédiaire d'un scripter.
    Je génère le script depuis l'as400, et je l'envoie d'un coup vers le scripter du client.
    Actuellement, je créé les nodes puis je modifie les propriétés en utilisant l'expression treeview1.items[i]
    Mais s'il y a beaucoup de nodes, c'est très lent.
    Mon problème, c'est que lorsque je créé le node depuis l'as400, je ne récupère pas un pointeur sur le node.
    Enfin, c'est un peu dur à expliquer à quelqu'un qui ne connait pas notre produit.(silverdev)

    C'est pourquoi je n'avais pas parlé de la raison qui me pousse à créer un name à un node.

  7. #7
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 443
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 443
    Points : 5 863
    Points
    5 863
    Par défaut
    salut

    le fincomponent qui recherche le nom d'un composant fait aussi une boucle a mon avis c'est pas ca ton probleme
    en fait il faut que tu "desactive" l'affichage lorsque tu fait ta boucle de recherche et le "reactive" à la fin

    pour faire ça utilise le beginupdate et endupdate du trre view

    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     TreeView.Items.BeginUpdate;
      for iLoop := 0 to 1000 do 
         TreeView.Items.AddFirst(nil,IntToStr(iLoop));
      TreeView.Items.EndUpdate;
    @+ Phil

Discussions similaires

  1. ajouter une propriété statique a l'execution ?
    Par Lorenzo77 dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 09/02/2010, 18h33
  2. Réponses: 5
    Dernier message: 12/10/2009, 17h03
  3. Ajouter une propriété a un object du framework
    Par damyrid28 dans le forum Framework .NET
    Réponses: 4
    Dernier message: 30/09/2009, 16h32
  4. Ajouter une propriété à un composant
    Par aliwassem dans le forum Composants VCL
    Réponses: 5
    Dernier message: 08/03/2008, 18h56
  5. [active X] ajouter une propriété
    Par Blo0d4x3 dans le forum MFC
    Réponses: 4
    Dernier message: 22/09/2004, 09h47

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