Hallo,
ich habe folgendes Problem,
ich hab ein Treeview der einen Record hat mit einem String und einem Index. Der String wird als CellText verwendet, der Index wird intern verwendet.
Mein Record
Delphi-Quellcode:
type
PBaumDaten = ^RBaumDaten;
RBaumDaten = Record
Text: String;
Index: Integer;
end;
Die Initialisierung sieht so aus:
Delphi-Quellcode:
procedure TForm1.vstErgebnisGetNodeDataSize(Sender: TBaseVirtualTree; var NodeDataSize: Integer);
begin
NodeDataSize:= SizeOf(PBaumDaten);
end;
Freigabe der Daten:
Delphi-Quellcode:
procedure TForm1.vstErgebnisFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
Var pDaten: PBaumDaten;
begin
pDaten:= vstErgebnis.GetNodeData(Node);
If Assigned(pDaten) Then
Begin
pDaten.Text:= '';
pDaten.Index:= 0;
End; //If
end;
CellText zuweisen:
Delphi-Quellcode:
procedure TForm1.vstErgebnisGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
Var pDaten: PBaumDaten;
begin
pDaten:= Sender.GetNodeData(Node);
If Assigned(pDaten) Then
CellText:= pDaten.Text;
end;
Beim leeren (.Clear) tritt der Fehler "Ungültige Zeigeroperation" auf, beim Anhalten springt Delphi zu folgender Zeile im VirtualTree Source:
procedure TCustomVirtualStringTree.DefineProperties(Filer: TFiler);
Virtual Tree 4.8.5
Delphi 2007
Ich komme nicht mehr weiter und weiß nicht wo mein Fehler liegt.
Kann mir jemand helfen?
Besten Dank!