Bjr


En mode conception, j'ai un composant personnalisé Schema de classe TSchema sur une fiche :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
TSchema = class(TComponant)
private
  FTree : TTreeView;
 
  FXML : TStringList;
  procedure LoadTreeView(Tree : TTreeView);
public
  property Tree : TTreeView read FTree;
  ...
 
published
  property XML : TStringList read FXML write SetXML;
  ..
end;

Je charge le contenu du XML dans ma propriété Tree.
Lors du chargement de chaque node je reconstruis les données associées.

A des fins d'édition sous l'EDI, j'utilise un éditeur de propriété spécifique dans lequel j'affiche mon arbre.

Ex code XML

<tree>
<item name="Premier" classname="TDemo" propname="Essai">
<item name="La suite ..." classname="TSuite" propname="Suite">
</item>
</item>
<item name="Suivant" classname="TSuivant" propname="">
</tree>


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
// Objet associé à chaque TTreeNode
TNodeData = class(TObject)
private
  FName : string;
  FPropName : string;
  FClassName : string;
end;

J'obtiens l'arbre suivant

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
+ Premier
|    +------ La suite ...
|
+ Suivant

Dans le node "Premier" j'ai :
TNodeData(Node.Data).FName = "Premier"
TNodeData(Node.Data).FProName = "Essai"
TNodeData(Node.Data).FClassName = "TDemo"

Dans le node "La Suite ..." j'ai :
TNodeData(Node.Data).FName = "La Suite ..."
TNodeData(Node.Data).FProName = "Suite"
TNodeData(Node.Data).FClassName = "TSuite"

etc ...



Maintenant sur ma fiche j'ai N composants qui référencent non seulement mon composant Schema mais aussi un TTreeNode précis de Schema.Tree


Question comment faite pour stocker dans le dfm la référence au TTreeNode ?



Merci
@+
Php