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.
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.
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 !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
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
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é
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 :
sinon utilise la propriete data pour lui affecter un objet ayant tes element suplementaire a ajouter
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;
@+ Phil
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.
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
@+ Phil
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;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager