AGB  ·  Datenschutz  ·  Impressum  







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

Listbox nach Text durchsuchen

Ein Thema von Jiro · begonnen am 12. Dez 2009 · letzter Beitrag vom 12. Dez 2009
Antwort Antwort
Jiro

Registriert seit: 12. Mär 2008
Ort: Hannover
77 Beiträge
 
Delphi 7 Personal
 
#1

Listbox nach Text durchsuchen

  Alt 12. Dez 2009, 17:27
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:
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 in der Playliste schon ein Eintrag vorhanden ist und ich den selben nochmal hinzufügen möchte, kommt die Meldung.
Wenn aber gar kein Eintrag vorhanden ist, passiert gar nichts. Woran liegt das schon wieder?
Niklas
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Listbox nach Text durchsuchen

  Alt 12. Dez 2009, 17:49
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:
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);
Oder analog eben für mehrere Dateien.

Grüße, Matze

Edit: Das genau natürlich genauso mit einer ListBox. Da kannst du dann auch Delphi-Referenz durchsuchenIndexOf nutzen, um zu prüfen, ob ein String enthalten ist.
  Mit Zitat antworten Zitat
Jiro

Registriert seit: 12. Mär 2008
Ort: Hannover
77 Beiträge
 
Delphi 7 Personal
 
#3

Re: Listbox nach Text durchsuchen

  Alt 12. Dez 2009, 18:47
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.
Niklas
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Listbox nach Text durchsuchen

  Alt 12. Dez 2009, 18:55
Willst du mich veräppeln?
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:
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;
Edit: versuche mal deine ganzen Codes zu verstehen und nicht blind 1:1 zu kopieren! Das bringt rein gar nichts.
Das mit IndexOf ginge so:

Delphi-Quellcode:
function InPlayList(Playlist: TListBox; VideoName: string): Boolean;
begin
  Result := PlayList.Items.IndexOf(VideoName) >= 0;
end;
Edit 2: Der Parameter kann natürlich auch vom Typ "TStrings" sein, aber das nur der Vollständigkeit halber.
  Mit Zitat antworten Zitat
Jiro

Registriert seit: 12. Mär 2008
Ort: Hannover
77 Beiträge
 
Delphi 7 Personal
 
#5

Re: Listbox nach Text durchsuchen

  Alt 12. Dez 2009, 19:07
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
Niklas
  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 15:42 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