Habs bekommen und auch sofort deinen Denkfehler gefunden. Du speicherst in der ListBox nicht nur einen bestimmten String, den du suchen möchtest, sondern setzt jedes Item aus diversen Strings zusammen. Das hättest ruhig mal etwas früher sagen können.
Denn damit geht das dann nicht mehr so einfach mit IndexOf, da so jedes Item als ganzes überprüft wird. Du mußt daher doch wieder mit einer Schleife durch die ListBox marschieren und prüfen, ob dein Suchstring in dem Item enthalten ist. Das machst du am einfachsten über
Pos. Das arbeitet ähnlich wie IndexOf und gibt dir die Position deines Suchstrings im zu durchsuchenden String zurück. Wird nichts gefunden, erhältst du 0 als Ergebnis.
Deine Suchroutine könnte also so aussehen:
Delphi-Quellcode:
procedure TForm1.Button9SucheClick(Sender: TObject);
var i, subStrPos : Integer;
begin
i := 0; subStrPos := 0;
while (i < ListBoxText.Items.Count) and (subStrPos = 0) do
begin
subStrPos := Pos(Edit9Suche.Text,ListBoxText.Items[i]);
if suBstrPos > 0 then
ListBoxText.ItemIndex := i;
inc(i);
end;
end;
//Edit: Tag korrigiert
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;