AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ListBox filtern

Ein Thema von cyanroot · begonnen am 20. Mär 2009 · letzter Beitrag vom 20. Mär 2009
Antwort Antwort
cyanroot

Registriert seit: 19. Okt 2008
43 Beiträge
 
#1

ListBox filtern

  Alt 20. Mär 2009, 03:26
Hallo liebe Community,

ich wollte euch fragen, ob ihr wisst, wie man eine ListBox nach dem eingegeben Text eines Edits filtern kann.
Ich habe 150 Songs in einem Ordner und deren Namen kann ich in der FormCreate in die ListBox laden. Nun wäre es aber schön, wenn es über der ListBox ein Editfeld gibt, das im OnChange Ereignis nur die entsprechenden Songnamen in der ListBox anzeigt. Also zum Beispiel:

- das gesuchte Lied heisst "Beatles - I Me Mine"
- in der ListBox sind noch alle Lieder drin, da das Program gerade erst gestartet wurde

Bis dahin komm ich . Nun aber, gebe ich IRGENDWAS ein, was im o.g. Lied vorkommt, also z.B.:

"i me" oder "Beatles"

Jetzt sollte im ersten Fall nur noch "Beatles - I Me Mine" in der ListBox stehen und im zweiten Fall
jeder Beatles Lied (ja, "Beatles" steht in jedem Liednamen). Ausserdem müsste er, wenn ich danach nach einem anderen Lied suche, die gewünschten anzeigen (also nicht, dass er beim Suchen die Einträge rauslöscht, sondern eben "echt" filtert).

Könnt ihr mir dabei helfen? Ich weiss echt nicht wo ich anfangen soll.

Danke
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: ListBox filtern

  Alt 20. Mär 2009, 03:48
Du hast im Hintergrund ja eine Liste, die du dann in der ListBox anzeigst. Und wenn sich etwas im Editfeld ändert, dann wiederholst du das Eintragen und filterst dabei mit dem Inhalt des Editfelds.

Oder missbrauchst du die ListBox zur Datenspeicherung und verwendest die Daten daraus weiter? Das klappt dann natürlich nicht. Du musst die Liste unabhängig von der Anzeige im Programm speichern, je nach Art der Daten in einer TStringList oder einer TObjectList zum Beispiel.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
cyanroot

Registriert seit: 19. Okt 2008
43 Beiträge
 
#3

Re: ListBox filtern

  Alt 20. Mär 2009, 03:53
Also die Liste holt sich den Inhalt aus einem angegebenen Ordner. Dort leigen nur mp3's und diese werden ohne Probleme in der ListBox angezeigt. Jetzt möchte ich die aber realtime filtern. Geht das irgendwie?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: ListBox filtern

  Alt 20. Mär 2009, 03:56
Naja, du liest die Liste der MP3s in eine TStringList aus und gehst die Einträge dann durch und trägst die in die ListBox ein, wenn sie passen. Wenn nix im Editfeld steht (z.B. beim Programmstart), dann ignorierst du das Editfeld und trägst immer ein.

Sinnvoll wäre später dann auch vielleicht gleich weitere Infos aus dem MP3s auszulesen. Die ID3 Tags usw. meine ich. Aber diese müssten dann auch gespeichert werden, weil das Auslesen bei jedem Programmstart zu lange dauert.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
cyanroot

Registriert seit: 19. Okt 2008
43 Beiträge
 
#5

Re: ListBox filtern

  Alt 20. Mär 2009, 04:01
Sorry, ich verstehs nicht. Könntest Du mir bitte einen kurzen Beispiel Code zeigen, für ein Edit1.OnChange Event? Ab da soll er ja filtern. Vielen Dank im Vorraus.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: ListBox filtern

  Alt 20. Mär 2009, 04:38
Delphi-Quellcode:
SearchText := EditX.Text;
ListBoxX.Items.Clear;
for i := 0 to MyStringList.Count - 1 do
  if (SearchText = '') or (Pos(SearchText, MyStringList[i]) > 0) then
    ListBoxX.Items.Add(MyStringList[i]);
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
cyanroot

Registriert seit: 19. Okt 2008
43 Beiträge
 
#7

Re: ListBox filtern

  Alt 20. Mär 2009, 13:25
Danke, das klappt wunderbar ,
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz