incremental search ist sehr einfach:
zuerst mal eine ereignisprozedur:
Delphi-Quellcode:
procedure TVST_Sort.IncrementalSearch(
Sender: TBaseVirtualTree; Node: PVirtualNode;
const SearchText: WideString; var Result: Integer);
var
a, b: String;
begin
a:=AnsiLowerCase(SearchText);
if node<>nil then
b:=AnsiLowerCase(TVirtualStringTree(sender).Text[node, sender.FocusedColumn])
else
b:='';
result:=StrLIComp(PChar(a), PChar(b), Min(length(a), length(b)));
end;
dann noch den vst zuweisen und incs freischalten:
Delphi-Quellcode:
with meinvst do
begin
IncrementalSearch:=isVisibleOnly;
IncrementalSearchTimeout:=1000;
if not Assigned(OnIncrementalSearch) then
OnIncrementalSearch:=TVST_Sort.IncrementalSearch;
end;
thats it.