AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi VirtualTreeView: Zugriff auf einzelnen Node
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualTreeView: Zugriff auf einzelnen Node

Ein Thema von MCXSC · begonnen am 28. Okt 2007 · letzter Beitrag vom 5. Nov 2007
Antwort Antwort
Seite 1 von 2  1 2      
MCXSC
(Gast)

n/a Beiträge
 
#1

VirtualTreeView: Zugriff auf einzelnen Node

  Alt 28. Okt 2007, 23:07
Hallo!

Ich habe eine kleine Frage bezüglich der VirtualTreeView-Komponente (bzw. des VST):

Und zwar gibt es ja bei der normalen TreeView und auch bei der ListView folgende Möglichkeit:

Delphi-Quellcode:
for i:=0 to ListView.Items.Count-1 do begin
 ShowMessage(ListView.Items[i].Caption);
end;
Zumindest so in etwa.

Allerdings habe ich bisher noch keine Möglichkeit gefunden, wie ich was vergleichbares auch mit der VST machen kann.

Hat jemand einen Tipp?

Danke & hf
MCXSC
  Mit Zitat antworten Zitat
C.Schoch

Registriert seit: 2. Jan 2006
Ort: Wüstenrot
235 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: VirtualTreeView: Zugriff auf einzelnen Node

  Alt 28. Okt 2007, 23:32
Hi,
Versuchs mal mit GetFirst, GetNext(), GetFirstChild() usw.

Um an die hinterlegten Daten Daten zu kommen benutzt du GetNodeData().
Tschau Christian
Das System hofft auf Besserung
[Siemens]
  Mit Zitat antworten Zitat
MCXSC
(Gast)

n/a Beiträge
 
#3

Re: VirtualTreeView: Zugriff auf einzelnen Node

  Alt 28. Okt 2007, 23:36
Ja, das habe ich ja schon. Aber auch das liefert mir nicht den direkten Zugriff auf einen bestimmten Node (z.B. den vierten Node in der Liste, o.ä.)
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#4

Re: VirtualTreeView: Zugriff auf einzelnen Node

  Alt 29. Okt 2007, 10:49
welches ist denn der 4. Knoten? Muss die Liste dazu aufgeklappt oder zugeklappt sein?
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Wishmaster

Registriert seit: 14. Sep 2002
Ort: Steinbach, MB, Canada
301 Beiträge
 
Delphi XE2 Architect
 
#5

Re: VirtualTreeView: Zugriff auf einzelnen Node

  Alt 29. Okt 2007, 11:27
Hi

Delphi-Quellcode:
NodeX := Tree.FocusedNode.FirstChild;
for I:=0 to Tree.FocusedNode.ChildCount-1 do
begin
  if not Assigned(NodeX) then
    Exit;
  TreeData := Tree.GetNodeData(NodeX);
  // do something with TreeData here <-
  NodeX := Tree.GetNextSibling(NodeX);
end;
  Mit Zitat antworten Zitat
C.Schoch

Registriert seit: 2. Jan 2006
Ort: Wüstenrot
235 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: VirtualTreeView: Zugriff auf einzelnen Node

  Alt 29. Okt 2007, 18:19
Hi,
So wie du das möchtest geht das im VT nicht, zumindest nicht direkt.
IMO geht das nur wenn du alle Nodes durchsuchst und dir im TreeData einen eigenen eindeutigen Bezeichner für den aktuellen Node anlegst und abfragst.
Tschau Christian
Das System hofft auf Besserung
[Siemens]
  Mit Zitat antworten Zitat
MCXSC
(Gast)

n/a Beiträge
 
#7

Re: VirtualTreeView: Zugriff auf einzelnen Node

  Alt 1. Nov 2007, 21:31
Ja, das es nur so geht, ist mir schon klar...

Aber wie kann ich denn die kompletten Node in der VST durchlaufen (von Index 0 an; also ohne das was ausgwählt ist, oder sonst was), von diesem übereinstimmenden den Index zurückgeben und den jeweiligen Node vorselektieren?

Ich bekomm es einfach nicht hin...
  Mit Zitat antworten Zitat
MCXSC
(Gast)

n/a Beiträge
 
#8

Re: VirtualTreeView: Zugriff auf einzelnen Node

  Alt 1. Nov 2007, 21:54
So, wie ich nun den Index des Node herausbekomme, weiß ich. Ich habs nun so gelöst (hab "TotalCount" gefunden ):

Delphi-Quellcode:
function FindeEintrag(Titel: String): Integer;
var
  Data: PTreeData;
  Node: PVirtualNode;
  i: Integer;
begin
  with MainFrm do begin
    Node := VSTListe.GetFirst;
    for i:=0 to VSTListe.TotalCount-1 do begin
      Data := VSTListe.GetNodeData(Node);
      if Data.Titel= Titelthen begin
        Result := Node.Index;
        Exit;
      end
      else Node := VSTListe.GetNext(Node);
    end;
  end;
end;
Aber nun stehe ich vor folgender Frage:

Wie kann ich diesen Node nun vorselectieren?
  Mit Zitat antworten Zitat
hermannhass

Registriert seit: 23. Dez 2006
Ort: Nähe Las Palmas
69 Beiträge
 
#9

Re: VirtualTreeView: Zugriff auf einzelnen Node

  Alt 1. Nov 2007, 23:48
Fosusieren mit
focusednode:=node;
<dein node>
oder Selectieren mit
SelectNodes(node,node,false);
Entwickle SW mit Delphi 2006 und sql.
Lebe auf Gran Canaria.
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#10

Re: VirtualTreeView: Zugriff auf einzelnen Node

  Alt 2. Nov 2007, 00:32
hier ist eine Lösung die auch gleich Zwischenergebnisse überprüft:
Delphi-Quellcode:
function GetNodeByTitle(Titel: String): PVirtualNode;
var
  Data: PTreeData;
  Node: PVirtualNode;
begin
  Result := nil;
  with MainFrm do
  begin
    Node := VSTListe.GetFirst();
    while Assigned(Node) and (Result = nil) do
    begin
      Data := VSTListe.GetNodeData(Node);
      if Assigned(Data) and (Data.Titel= Titel) then
        Result := Node;
      
      Node := VSTListe.GetNext(Node);
    end;
  end;
end;
Fokussieren des Nodes:

Delphi-Quellcode:
procedure Foo();
var
  MyNewFocusedNode: PVirtualNode;
begin
  MyNewFocusedNode := GetNodeByTitle('bla');
  if Assigned(MyNewFocusedNode) then
    VSTListe.FocusedNode := MyNewFocusedNode;
end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:55 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