AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Virtual String Tree: Nodecaption wird nicht gesetzt
Thema durchsuchen
Ansicht
Themen-Optionen

Virtual String Tree: Nodecaption wird nicht gesetzt

Ein Thema von Nils_13 · begonnen am 27. Okt 2006 · letzter Beitrag vom 27. Okt 2006
Antwort Antwort
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

Virtual String Tree: Nodecaption wird nicht gesetzt

  Alt 27. Okt 2006, 15:12
Hi,

da ich in diesem Thread auf das Virtual String Tree hingewiesen wurde, schaute ich mir vor kurzem das Tutorial von Delphi-Source zu VST an. Warum wird bei folgendem Code die Caption aller Items auf "Node" gesetzt ?
Delphi-Quellcode:
type
  PTreeData = ^TTreeData;

  TTreeData = record
    Str: String;
  end;

...

procedure TfrmMain.FormCreate(Sender: TObject);
begin
  VST.NodeDataSize := SizeOf(TTreeData);
end;

procedure TfrmMain.addNodeClick(Sender: TObject);
var Data: PTreeData;
    Node: PVirtualNode;
begin
  Node := VST.AddChild(nil);
  Data := VST.GetNodeData(Node);
  VST.AddChild(Node);
  Data.Str := Edit1.Text;
end;

procedure TfrmMain.VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Column: Integer; TextType: TVSTTextType; var CellText: WideString);
var Data: PTreeData;
begin
  Data := VST.GetNodeData(Node);
  CellText := Data.Str;
end;

procedure TfrmMain.VSTFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
var Data : PTreeData;
begin
  Data := VST.GetNodeData(Node);
  Data.Str := '';
end;
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
379 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Virtual String Tree: Nodecaption wird nicht gesetzt

  Alt 27. Okt 2006, 16:03
Zitat:
Delphi-Quellcode:
procedure TfrmMain.addNodeClick(Sender: TObject);
var Data: PTreeData;
    Node: PVirtualNode;
begin
  Node := VST.AddChild(nil);
  Data := VST.GetNodeData(Node);
  VST.AddChild(Node);
  Data.Str := Edit1.Text;
end;
Wie wäre es, wenn Du die reihenfolge mal vertauschen würdest:
Also ERST die Data.eigenschaft des Nodes setzen und DANN den Node dem VSt zufügen.

Moin
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#3

Re: Virtual String Tree: Nodecaption wird nicht gesetzt

  Alt 27. Okt 2006, 16:08
Hi,

Delphi-Quellcode:
procedure TfrmMain.addNodeClick(Sender: TObject);
var Data: PTreeData;
    Node: PVirtualNode;
begin
  Data := VST.GetNodeData(Node);
  Data.Str := Edit1.Text;
  Node := VST.AddChild(nil); <-- AV
  VST.AddChild(Node);
end;
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Virtual String Tree: Nodecaption wird nicht gesetzt

  Alt 27. Okt 2006, 16:14
Ohne die Komponente näher zu kennen würde ich sagen "AddChild" erwartet das ParentNode, denn wohin soll sonst das Child wenn kein Parent angegeben wird? Also solltest du da wohl nicht "nil" übergeben.
Aber wie gesagt kenn ich die Komponenten nicht und denke dies nur Anhand des Namens der Methode.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Virtual String Tree: Nodecaption wird nicht gesetzt

  Alt 27. Okt 2006, 16:15
Leute, was macht ihr da?

Delphi-Quellcode:
procedure TfrmMain.addNodeClick(Sender: TObject);
var Data: PTreeData;
    Node: PVirtualNode;
begin
  Node := VST.AddChild(nil);
  Data := VST.GetNodeData(Node)
  Data.Str := 'so gehts';
end;
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Virtual String Tree: Nodecaption wird nicht gesetzt

  Alt 27. Okt 2006, 16:19
*g* wenn ich das jetzt so sehe kommt die AV wohl eine Zeile über der angegebenen weil Data nicht initialisiert ist.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#7

Re: Virtual String Tree: Nodecaption wird nicht gesetzt

  Alt 27. Okt 2006, 16:21
Zitat von SirThornberry:
Ohne die Komponente näher zu kennen würde ich sagen "AddChild" erwartet das ParentNode, denn wohin soll sonst das Child wenn kein Parent angegeben wird? Also solltest du da wohl nicht "nil" übergeben.
Aber wie gesagt kenn ich die Komponenten nicht und denke dies nur Anhand des Namens der Methode.
Ich habe es so verstanden:
- Node definieren (Node := VST.AddChild(nil) erstellt mir zusätzlich noch den Grundnode)
- VST.AddChild(Node) erstellt mir ein Unteritem, welches von dem vorher erstellten ausgeht (deshalb nil, weil der Parent für SubItems gedacht ist).



Zitat von Igotcha:
Leute, was macht ihr da?

Delphi-Quellcode:
procedure TfrmMain.addNodeClick(Sender: TObject);
var Data: PTreeData;
    Node: PVirtualNode;
begin
  Node := VST.AddChild(nil);
  Data := VST.GetNodeData(Node)
  Data.Str := 'so gehts';
end;
Ach wirklich ? Dann vergleich mal mit dem Code des 1. Beitrags.


Delphi-Quellcode:
procedure TfrmMain.addNodeClick(Sender: TObject);
var Data: PTreeData;
    Node: PVirtualNode;
begin
  Node := VST.AddChild(nil);
  VST.AddChild(Node);
  Data := VST.GetNodeData(Node);
  Data.Str := Edit1.Text;
end;
[edit]Ich habe nicht ohne Grund den ganzen Code gepostet, vlt. liegt der Fehler auch an einer anderen Stelle begraben.[/edit]
Node war noch nicht initialisiert. So wird das aber nichts:
Miniaturansicht angehängter Grafiken
vst_node_188.png  
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#8

Re: Virtual String Tree: Nodecaption wird nicht gesetzt

  Alt 27. Okt 2006, 17:26
Moin )
@nils_13: bist du sicher, dass du im ObjektInspektor dem VST das Ereignis 'OnGetCellText' auch der entsprechenden Prozedur zugewiesen hast? Ich weiß, ich vllt. ne dumme Frage, aber wenn du das nicht gemacht hast, dann kann dem Node auch nicht der Text aus dem EditFeld zu gewiesen werden und somit bleibt der DefaultText (siehe im OI die entsprechende Eigenschaft) standardmäßig auf Node
Im Übrigen ist der gepostete Code von Dir durchaus richtig und funzt soweit auch!
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#9

Re: Virtual String Tree: Nodecaption wird nicht gesetzt

  Alt 27. Okt 2006, 18:03
keine dumme Frage Ich dachte, dass hätte ich gemacht, wohl doch nicht. Danke für eure Hilfe
  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 03:48 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