Einzelnen Beitrag anzeigen

MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#1

VirtualListView / VirtualStringTree - Knoten benötigt Klasse

  Alt 9. Dez 2007, 17:39
Hallo,

ich benötige bei einem VirtualStringTree eine Stringlist für jeden einzelnen Knoten. Nun dachte ich, ich könnes es ganz einfach lösen:

Delphi-Quellcode:
type
  PTreeData = ^TTreeData;
  TTreeData = record
    fCaption: string;
    fStringList: TStrings;
  end;

...

function AddVSTStructure(AVST: TCustomVirtualStringTree; ANode: PVirtualNode;
  ARecord: TTreeData): PVirtualNode;
var
  Data: PTreeData;
begin
  result := AVST.AddChild(ANode);
  Data := AVST.GetNodeData(result);
  Avst.ValidateNode(result, false);
  Data^.fCaption:= ARecord.fCaption;
  Data^.fStringList:= ARecord.fStringList;
end;

procedure TForm1.VirtualStringTree1FreeNode(Sender: TBaseVirtualTree;
  Node: PVirtualNode);
var
  Data: PTreeData;
begin
  Data := VirtualStringTree1.GetNodeData(Node);
  if Assigned(Data) then begin
    Data.fCaption := '';
    Data.fStringList.Free;
  end;
end;

...

// Beispiel aufruf zum Erzeugen eines neuen Eintrags:
procedure TForm1.FormCreate(Sender: TObject);
var
  TreeData: TTreeData;
  pvnode: PVirtualNode;
begin
  pvnode := VirtualStringTree1.RootNode;
  TreeData.fCaption:= 'Test';
  if not Assigned(TreeData.fStringList) then
    TreeData.fStringList:= TStringlist.Create;
  TreeData.fStringList.Add('Test1');
  AddVSTStructure(VirtualStringTree1, pvnode, TreeData);
end;
Doch diese Variante funktioniert nicht, wo liegt mein Fehler ?
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat