Er meint, du sollst bereits vor der Suche die Listbox.Items in einer StringList zwischenspeichern, am besten bereits konvertiert.
Du suchst dann in der Stringlist
Außerdem folgendes:
Delphi-Quellcode:
type
TSuche = record
Text: AnsiString;
ItemPos: integer;
StrPos: integer;
end;
//...
var
i, NextPos: Integer;
ItemText: AnsiString;
begin
if Suche.ItemPos = -1 then
Suche.ItemPos := 0;
Suche.Text := AnsiUpperCase(Edit1.Text); // Edit1 = Suchtext
for i := Suche.ItemPos to Pred(Search_Form.Listbox.Count) do
begin
ItemText := AnsiUpperCase(Search_Form.Listbox.Items.Strings[i]);
if Suche.StrPos > 0 then
begin
NextPos := pos(Suche.Text, Copy(ItemText, Suche.StrPos +
length(Suche.Text), length(ItemText) - Suche.StrPos));
// vll. Nextpos = posex(Suche.Text im itemtext, nextpos + length(suche.text)) ???
// dann hier keine if abfrage, sondern einfach
if NextPos > 0 then
Suche.StrPos := NextPos; // siehe oben
else
Suche.StrPos := 0; // sinn? pos gibt doch nie werte < null zurück, oder?
end
else
Suche.StrPos := pos(Suche.Text, ItemText);
....