![]() |
Listbox nach Text durchsuchen
Auf Wunsch eines Users, hier meine Frage in einem neuen Thema ;)
Ich möchte beim Laden in die Playliste prüfen, ob der Eintrag schon vorhanden ist.
Delphi-Quellcode:
Wenn in der Playliste schon ein Eintrag vorhanden ist und ich den selben nochmal hinzufügen möchte, kommt die Meldung.
for playlistcheck := 0 to playlist.Count -1 do
if opendialog.Filename<>playlist.Items[vidname] then begin playlist.Items.AddStrings(opendialog.Files); end else showmessage('Schon vorhanden!'); Wenn aber gar kein Eintrag vorhanden ist, passiert gar nichts. Woran liegt das schon wieder? |
Re: Listbox nach Text durchsuchen
Hallo,
ich verstehe überhaupt nicht, was dein Code macht. Wenn der aktuell betrachtete Playlist-Eintrag nicht dem Dateiname im OpenDialog entsprichst, fügst du den Dateipfad hinzu, auch wenn dieser gegen Ende in der Playlist stehen könnte. Ich würde das so irgendwie lösen:
Delphi-Quellcode:
Oder analog eben für mehrere Dateien.
function InPlayList(Playlist: TStringList; VideoName: string): Boolean;
var i: Integer; begin Result := false; for i := 0 to Playlist.Count - 1 do begin if VideoName = Playlist.Items[i] then begin Result := true; break; end; end; end; // Aufruf: if not InPlaylist(playlist, OpenDialog1.FileName) then playlist.Items.Add(OpenDialog1.Filename); Grüße, Matze Edit: Das genau natürlich genauso mit einer ListBox. Da kannst du dann auch ![]() |
Re: Listbox nach Text durchsuchen
Das mit dem IndexOf will bei mir nicht so ganz klappen und die ListBox hat ja kein "Items".
Wenn ich IndexOf(i) mache, kommt immer nur inkompatible Typen string und integer. Hab jetzt bei Playlist das TStringList durch TListBox ersetzt, aber da finde ich nichts um i einzubinden. |
Re: Listbox nach Text durchsuchen
Willst du mich veräppeln? :gruebel:
Natürlich hat eine ListBox die Eigenschaft Items und der Code oben funktioniert 1:1, nur dass du "TStringList" durch "TListBox" ersetzen musst.
Delphi-Quellcode:
Edit: versuche mal deine ganzen Codes zu verstehen und nicht blind 1:1 zu kopieren! Das bringt rein gar nichts.
function InPlayList(Playlist: TListBox; VideoName: string): Boolean;
var i: Integer; begin Result := false; for i := 0 to Playlist.Count - 1 do begin if VideoName = Playlist.Items[i] then begin Result := true; break; end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin if not InPlayList(ListBox1, 'hallo') then ListBox1.Items.Add('hallo'); end; Das mit IndexOf ginge so:
Delphi-Quellcode:
Edit 2: Der Parameter kann natürlich auch vom Typ "TStrings" sein, aber das nur der Vollständigkeit halber.
function InPlayList(Playlist: TListBox; VideoName: string): Boolean;
begin Result := PlayList.Items.IndexOf(VideoName) >= 0; end; |
Re: Listbox nach Text durchsuchen
Danke, jetzt funktioniert es..ich habs auch versucht zu verstehen aber ich wusste nicht, wo das VideoName deklariert ist.
Als ichs gesehen hab, hab ich des auch sofort geändert ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 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 by Thomas Breitkreuz