Treeviews crées Dynamiquement
Bonjour à tous,
je souhaite réaliser un programme qui crée des treeviews dynamiques dans un systeme d'onglet crée dynamiquement aussi.
Ces treeview sont alimentés par des objets.
J'ai realisé un petit bout de code tres rapide pour exposer mon probleme (ne pas tenir compte de la non liberation des mes objets, je le ferais proprement, c'est promis, dans mon veritable programme :mrgreen: )
Voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| type
TMaClass = class
sInfo : string ;
end ;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
GroupBox1: TGroupBox;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
private
i : integer ;
tsLeft : TTabSheet ;
tvLeft : TTreeView ;
ObjClass : TMaClass ;
Node : TTreeNode ;
Mytree : TTreeView ;
procedure tvOnClick(Sender : TObject);
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ObjClass := TMaClass.Create ;
ObjClass.sInfo := Edit1.Text ;
tsLeft := TTabSheet.Create(PageControl1);
tsLeft.Parent := PageControl1 ;
tsLeft.Name := 'Tab'+IntToStr(i);
tsLeft.Caption := 'Tab'+IntToStr(i);
tsLeft.PageControl := PageControl1 ;
tvLeft := TTreeView.Create(PageControl1) ;
tvLeft.Name := 'Tree'+IntToStr(i);
tvLeft.Align := alClient ;
tvLeft.Parent := tsLeft ;
tvLeft.OnClick := tvOnClick ;
Node := tvLeft.Items.AddChildObject(nil, 'test', ObjClass);
Mytree := tvLeft ;
inc(i);
end;
procedure TForm1.tvOnClick(Sender : TObject);
var
ObjResume : TMaClass ;
begin
ObjResume := Mytree.selected.Data;
Edit2.Text := ObjResume.sInfo;
end ; |
Le probleme avec ce code est que si je cree un seul onglet, il n'y a aucun probleme: je récupère la valeur que j'ai mise dans le noeud.
Si j'en crée un deuxième, j'ai la valeur du noeud de cet onglet par contre je perd la valeur du noeud du premier. :cry:
Quelqu'un a t-il une suggestion ?
merci