Hallo,
hier handelt es sich ja wohl um eine schrittweise Suche. Der Abbruch der Suchschleife soll ja nicht durch den Benutzer erfolgen, sondern erfolgt bei Eintritt des Abbruchkriteriums. Der Trick mit der fortgesetzten Suche besteht darin, dass man den Wert der Laufvariablen nach einem Suchtreffer aufheben muss:
Delphi-Quellcode:
function FindNextValue(s: TStrings; const value: string; var index: Integer): Boolean;
begin
Result := False;
while not Result and (index < Pred(s.Count)) do
begin
Inc(index);
Result := AnsiSameText(s.ValueFromIndex[index], value);
end;
end;
Beim Aufruf zeigt index auf die letzte Fundstelle, beim ersten Aufruf ist index mit -1 zu initialisieren. Kehrt die Funktion mit index = s.Count zurück, dann können die nächsten SectionValues durchsucht werden.
Freundliche Grüße