Einzelnen Beitrag anzeigen

Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#33

Re: In einer ListBox einen Eintrag suchen bzw. Eintrag änder

  Alt 20. Feb 2006, 21:36
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;
  Mit Zitat antworten Zitat