Hallo,
mal so ein bisserl schmutzig von mir dahingeschrieben:
if (text<>'') OR (text2<>'') OR (text3<>'') then
Mach Dir dafür 'nen boolschen Schalter, dann musst Du nur einmal abfragen
b := (text<>'') OR (text2<>'') OR (text3<>'');
Das kannst Du schon vor Deiner For-Schleife machen, ist b = false, kannst Du Dir die For-Schleife direkt sparen.
Text... werden bei jeder Abfrage mit Lowercase behandelt, mache das einmal vor der Schleife.
Delphi-Quellcode:
if Pos( LowerCase(text3), LowerCase( FSelect.Strings[ii] ) ) > 0 then
begin
i:=Pos( LowerCase(text3), LowerCase( FSelect.Strings[ii] ) );
Prüfe bitte, ob Du vorab auch FSelect.Strings[ii] in Lowercase wandeln kannst, dann mach das vorab in einer separaten Schleife.
Die Position wird hier zweimal ermittelt, eventuell machst Du das besser so:
Delphi-Quellcode:
i := Pos( LowerCase(text3), LowerCase( FSelect.Strings[ii] ) );
if i > 0 then
begin
@taaktaak, IndexOf ist hier nicht geeignet, da nicht nach Strings in der Liste gesucht wird, sondern nach Teilstrings in den einzelnen Listeneinträgen, das kann IndexOf meines Wissens nicht.
Stephan
PS: taaktaak war schneller als ich