Autor Beitrag
Tony-S
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: Mi 07.10.09 21:43 
Hallo Community, ich möchte über eine Listbox einen ausgewählten Titel mittels bass.dll abspielen und komme irgendwie nicht weiter:

Die Titel hinzufügen ist ja noch einfach:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var
I: integer;
begin
if OpenDialog1.Execute=True then

 begin
        for I := 0 to OpenDialog1.Files.Count-1 do
        Listbox1.Items.add(Opendialog1.Files[i]);
        // hier weiß ich nicht, ob für ein weiteres vorgehen das hier nicht besser ist:
        //  Listbox1.Items.add(extractfilename(Opendialog1.Files[i]));
 end;

end;


Das Problem liegt allerdings beim abspielen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.Btn_PlayClick(Sender: TObject);
begin
track:= BASS_StreamCreateFile(FALSE, pchar(    ), 000);
// in der leeren klammer hatte ich mir eigentlich gedacht das ich dort sowas wie 
// Listbox.selectedtext oder so ähnlich nutzen könnte bzw selected
// wenn ich in die Klammer opendialog1.filename schreibe klappts ja auch :/
BASS_ChannelPlay(track, False);
end;


Würde mich freuen wenn mir jemand helfen kann :) .

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Ach verdammt, das passiert mir so oft, ich eröffne n Thread und komme dann selbst drauf
-_-:

so z. B. spielt man einen ausgewählten Titel ab:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var i:integer;
begin
for I := 0 to Listbox1.Items.Count -1 do


track:= BASS_StreamCreateFile(FALSE, pchar(Listbox1.Items [i]), 000);
BASS_ChannelPlay(track, False);
end;


Der Thread kann eigentlich gelöscht werden, aber vllt hilfts ja jemanden weiter ^^.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mi 07.10.09 21:53 
Zuerstmal: das Listbox1.Items.add(extractfilename(Opendialog1.Files[i])); wäre eine ganz doofe Idee. Mag zwar in der Listbox besser aussehen, aber dann weiß man hinterher nicht mehr, wo die Datei zu finden ist.

Besser: Daten und Anzeige trennen. Wie man das macht, steht in meinem Tutorial.

Zum zweiten Beitrag: Nein, so spielt man den letzten Titel ab, da sämtliche BASS_StreamCreateFile in der Schleife am Ende für die Katz waren. ;-)

_________________
We are, we were and will not be.
Tony-S Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: Mi 07.10.09 21:58 
Danke, dein Tutorial werde ich mir noch ansehen :).
Und das mit dem letzten Titel hab ich just in dem Moment gemerkt als ich mal 2 Lieder hinzugefügt hab :D, ok nur weiß ich jetzt nich wie ich sonst den aus gewählten Titel abspiele.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mi 07.10.09 22:03 
Es gibt da noch die Eigenschaft Selected oder so ähnlich, mit der man abfragen kann, ob ein Eintrag markiert ist.

_________________
We are, we were and will not be.
Tony-S Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: Mi 07.10.09 22:10 
Ok habs hinbekommen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
var i:integer;
begin
for I := 0 to Listbox1.Items.Count -1 do
  if ListBox1.Selected[I]=True then
  begin
  BASS_ChannelStop(track);
  track:= BASS_StreamCreateFile(FALSE, pchar(Listbox1.Items [i]), 000);
  BASS_ChannelPlay(track, False);
  end;
end;


Wenn das irgendwie unschön gelöst is oder so, bitte korrigieren =)
Und thx für deine Hilfe.