我想執行搜索過程到VirtualStringTree
,我想通過比較搜索文本與來自節點的文本而不是來自指針(例如Data^.Column0
),因爲這並不總是String
。VirtualStringTree:搜索類型不是字符串的文本
請幫我一個建議,從中取回節點的文本。
爲了更好地理解看到婁代碼(我調整爲例,從拉撒路)
type
PTreeData = ^TTreeData;
TTreeData = record
Column0: TDate; //Date
Column1: Integer; //Integer
Column2: String;
end;
procedure TForm1.VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
var
Data: PTreeData;
begin
Data := VST.GetNodeData(Node);
case Column of
0: CellText := DateToStr(Data^.Column0); //2015-05-11 or 11-05-2015
1: CellText := IntToStr(Data^.Column1) + ' days'; //22 days
2: CellText := Data^.Column2;
end;
end;
你怎麼打算,如果你讓他們通過鏈接來獲取節點的數據節點數據指針?如果你在問如何編寫一個通用的解決方案,那麼你的問題(很可能)會縮小到如何通過文本搜索簡單類型,並丟棄虛擬樹和指針的東西。剩下的將是*我有一個記錄集合(通過節點指針在虛擬樹內部),其中我想通過文本*搜索任何簡單的類型字段。 – TLama
如果沒有辦法,我會添加到'record'' ColumnOAsText'這將是'Data^.Column0AsText:= DateToStr(Data^.Column0)',我將通過字符串執行搜索。 – REALSOFO
我無法理解這一點。您已有代碼來返回每列的文本表示形式。 –