AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Treeview kopieren

Ein Thema von Goldorak · begonnen am 14. Nov 2003 · letzter Beitrag vom 9. Sep 2005
Antwort Antwort
Goldorak

Registriert seit: 14. Nov 2003
5 Beiträge
 
#1

Treeview kopieren

  Alt 14. Nov 2003, 12:57
Hallo,

Ich suche verzweifelt nach einer einfache Möglichkeit ein Treeview automatisch in einem anderen Treeview zu aktualisieren :

Beispiel

MeinTreeview
|
+ ShellTreeview
|
+ DBTreeview

Beide Treeview (ShellTreeview und DBTreeview) bleiben versteckt, aber wenn sich was tut, soll es in MeinTreeview so einfach wie nur möglich aktualisiert werden (inkl. Images... wenn schon )

Hat jemand 'ne Idee ?
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#2

Re: Treeview kopieren

  Alt 14. Nov 2003, 13:13
Delphi-Quellcode:
  TreeView2.items.Assign(TreeView1.Items);

  If Assigned(TreeView1.Images) then
    TreeView2.Images := TreeView1.Images;

  If Assigned(TreeView1.StateImages) then
    TreeView2.StateImages :=TreeView1.StateImages;
  Mit Zitat antworten Zitat
Goldorak

Registriert seit: 14. Nov 2003
5 Beiträge
 
#3

Re: Treeview kopieren

  Alt 14. Nov 2003, 14:17
Hab' mich vielleicht falsch ausgedrückt :

Die 2 TVs sind bestandteil von der eine.

Meine Root --- 1. Node = Root von TV1
--- 2. Node = Root von TV2
--- 3. Node = Root von TV3
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#4

Re: Treeview kopieren

  Alt 14. Nov 2003, 16:01
Na, dann so in etwa:

Delphi-Quellcode:
procedure AssignChildren(Source, Dest : TTreeNode);
var
  subtn : TTreeNode;
  i : integer;
begin
  Dest.DeleteChildren;
  for i := 0 to (Source.Count-1) do
    If (Source.Item[i].Parent = Source) then
    begin
      subtn := TTreeView(Dest.TreeView).Items.AddChild(Dest, '');
      subtn.Assign(Source.Item[i]);

      If Source.Item[i].HasChildren then
        AssignChildren(Source.Item[i], subtn);
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
  tn : TTreeNode;
begin
  for i := 0 to (TreeView1.Items.Count-1) do
    begin
      If TreeView1.Items[i].Parent = nil then
        begin
          tn := TreeView2.items.AddChild(TreeView2.items[0], '');
          with tn do
            begin
              Assign(TreeView1.Items[i]);

              If TreeView1.Items[i].HasChildren then
                AssignChildren(TreeView1.Items[i], tn);
            end;
        end;
    end;

  If Assigned(TreeView1.Images) then
    begin
      If not Assigned(TreeView2.Images) then
        TreeView2.Images := TImageList.Create(nil);
      TreeView2.Images.AddImages(TreeView1.Images);
    end;

  If Assigned(TreeView1.StateImages) then
    begin
      If not Assigned(TreeView2.StateImages) then
        TreeView2.StateImages := TImageList.Create(nil);
      TreeView2.StateImages.AddImages(TreeView1.StateImages);
   end;
end;
In dem Fall ist TreeView1 einer der versteckten TVs und TreeView2 ist derjenige, der die Untereinträge bekommt.
  Mit Zitat antworten Zitat
Goldorak

Registriert seit: 14. Nov 2003
5 Beiträge
 
#5

Re: Treeview kopieren

  Alt 18. Nov 2003, 11:08
Danke !
Sowas in die Richtung wird es wohl sein.
Habe z.Z. nur das Problem, daß der erste TV ein ShellTreeView ist, der keine Imagelist hat.
Der zweite TV wird ein DBTV sein, und da werde ich dein Typ gut brauchen können
  Mit Zitat antworten Zitat
japetos

Registriert seit: 30. Aug 2005
Ort: Montreal
58 Beiträge
 
#6

Re: Treeview kopieren

  Alt 9. Sep 2005, 15:17
Hallo.

ich habe ein aehnliches Problem.

in meinem TreeView moechte ich die Veraenderung eines Knotens (nach Drag&Drop) in einer DB Speichern.
Habt ihr eine Idee wie ich das loesen koennte?

Dann waere mein Progg fertig.

so siehts im Moment aus:
Code:
var
  NR : TNodeRecord;
  FF : TField;
begin
  NR := KADaoDBTreeView1.GetNodeData(Node);
  if Assigned(NR.Fields) Then
     //FF := NR.Fields.FieldByName('OtherData');
end;
aber das FieldByName wird nicht akteptiert.

  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz