Zitat von
generic:
Das Problem ist (wie du schon festgestellt hast) in der onGetText Methode.
Deine Typprüfungen und die Casts sehen etwas kompliziert aus.
daten würde ich als ParentPos deklarieren und dann nur zu dem SeachResult casten.
Ich denke dort liegt irgendwo der Fehler.
Erstmal danke für Deinen Hinweis. Ich habe jetzt das OnGetText-Ereignis so abgeändert :
Delphi-Quellcode:
procedure TSearchResultForm.VST_SearchResultGetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString);
var
daten: TOParentPos;
begin
daten := TOParentPos(VST_SearchResult.GetNodeData(Node)^);
case Column of
0: CellText := IntToStr(TOSearchResult(daten).Number);
1 : begin
if daten is TOParentPos then
CellText := daten.Position;
if daten is TOSearchResult then
CellText := TOSearchResult(daten).Kategorie;
end;
2 : begin
if daten is TOParentPos then
CellText := daten.TextSnip;
if daten is TOSearchResult then
CellText := TOSearchResult(daten).Ueberschrift;
end;
end;
end;
So funktioniert es jetzt, ich habe aber noch ein Verständnisproblem dabei, wieso meine andere IF-Abfrage aus Beitrag #1 nicht funktioniert und warum ich das ganze umdrehen muss ?