![]() |
Listbox durchsuchen
Hallo,
wie ich die Listbox durchsuchen kann weiß ich:
Delphi-Quellcode:
Nur so springt er nur zum erstgefundenen Ergebnis wie kann ich durch einen weiteren Klick das nächste Object anzeigen lassen(da mehrere gleiche Elemente in der Listbox sind)?
procedure TForm1.SpeedButton1Click(Sender: TObject);
var i, subStrPos : Integer; begin i := 0; subStrPos := 0; while (i < ListBox2.Items.Count) and (subStrPos = 0) do begin subStrPos := Pos(Edit7.Text,ListBox2.Items[i]); if suBstrPos > 0 then ListBox2.ItemIndex := i; inc(i); end; end; Und wenn das letzte Objekt gefunden ist soll er wieder oben anfangen!? MfG Christian Vielen Dank im vorraus! |
Re: Listbox durchsuchen
Zitat:
fang bei der Suche nicht bei 0 an, sodern bei ItemIndex + 1. (du kannst dir natürlich auch die letzte Fundstelle in einer Variablen merken und dann bei letzteFundstelle+1 anfangen zu suchen) Wenn die Suche bei Items.Count ohne Ergebnis angekommen ist, setze ItemIndex (oder die Variable) wieder auf 0 und suche dann weiter um wieder oben anzufangen (in einer boolean-Variablen kannst du dir merken ob du schon mal neu oben angefangen hast) Ciao, Ralf |
Re: Listbox durchsuchen
ok das probiere ich gleich danke...
und wie könnte ich alles durchsuchen und alle ergebnisse auf einen ruck in ein Memo eintragen??? MfG Christian |
Re: Listbox durchsuchen
Zitat:
Delphi-Quellcode:
(oder statt ItemIndex natürlich die Fundstellen-Variable ...)
MeinMemo.Lines.Add(Listbox2.Items[ListBox2.ItemIndex]);
Ciao, Ralf |
Re: Listbox durchsuchen
Wenn du nicht abbrechen willst, sobald was gefunden wurde, dann einfach das and (subStrPos = 0) aud der Abfrage in der While-Schleife entfernen.
Delphi-Quellcode:
Und mit 'ner For-Schleife siehst's bestimmt auch nicht schlecht aus ^_^
procedure TForm1.SpeedButton1Click(Sender: TObject);
var i: Integer; begin i := 0; while i < ListBox2.Items.Count do begin if Pos(Edit7.Text, ListBox2.Items[i]) > 0 then MeinMemo.Lines.Add(Listbox2.Items[ListBox2.ItemIndex]); inc(i); end; end;
Delphi-Quellcode:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var i: Integer; begin for i := 0 to ListBox2.Items.Count - 1 do if Pos(Edit7.Text, ListBox2.Items[i]) > 0then MeinMemo.Lines.Add(Listbox2.Items[ListBox2.ItemIndex]); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz