Seite 3 von 4
Verfasst: 29.08.2007 21:26
von Captn. Jinguji
bei mir spielt es immer das letzte der Liste,egal welches ich anclicke.
Ich würde übrigens noch .flv mit aufnehmen, für die vielen daylimotion fans

Verfasst: 29.08.2007 21:40
von Kiffi
Kiffi hat geschrieben:Das Programm wird aber auf die Dauer recht eintönig sein,
wenn es immer nur ein Lied abspielt

Captn. Jinguji hat geschrieben:bei mir spielt es immer das letzte der Liste,egal welches ich anclicke.
@Zerosurf:
um mal einen kleinen Tipp abzugeben:
Du musst vor RunProgram() mit SelectElement(MeineMucke()) das Lied
auswählen, dass auch im ListView angewählt wurde
(Stichwort: GetGadgetState()).
Grüße ... Kiffi
Verfasst: 29.08.2007 21:45
von Zerosurf
@Kiffi: genau das habe ich mir gerade auch gedacht!
vielen dank,
mfg. Zerosurf
Verfasst: 29.08.2007 21:56
von Zerosurf
here we go:
Code: Alles auswählen
Procedure sucheMusikdateien(pfad.s, Liste.s(), typ.s="mp3,wma,wav,wmv,avi,ogg")
PathAddBackslash_(@pfad) ; Hängt Backslash an, falls nötig
Protected dir=ExamineDirectory(#PB_Any, pfad, ""), n
If dir
While NextDirectoryEntry(dir)
If DirectoryEntryType(dir) = #PB_DirectoryEntry_File
For n=1 To CountString(typ, ",")+1
If StringField(typ, n, ",") = LCase(GetExtensionPart(DirectoryEntryName(dir)))
AddElement(Liste())
Liste()=pfad+DirectoryEntryName(dir)
Break
EndIf
Next
Continue
ElseIf DirectoryEntryName(dir) <> "." And DirectoryEntryName(dir) <> ".."
sucheMusikdateien(pfad+DirectoryEntryName(dir), Liste(), typ)
EndIf
Wend
FinishDirectory(dir)
EndIf
EndProcedure
NewList MeineMucke.s()
OpenWindow(0, 0, 0, 600, 400, "Musik", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
ButtonGadget(0, WindowWidth(0)-105, 5, 100, 20, "Auflisten")
StringGadget(1, 5, 5, 485, 20, "media\") ; Verzeichnis welches die Multimediadateien enthält
ListViewGadget(2, 5,30, 590, 365)
Repeat
Event = WaitWindowEvent()
Gadget= EventGadget()
If Event = #PB_Event_Gadget
If Gadget = 0
sucheMusikdateien(GetGadgetText(1), MeineMucke())
ForEach MeineMucke()
AddGadgetItem(2, -1, MeineMucke())
Next
AddGadgetItem(2, -1, StrQ(CountList(MeineMucke()))+" Dateien gefunden")
EndIf
Select EventGadget()
Case 2
Select EventType()
Case #PB_EventType_LeftDoubleClick
p = GetGadgetState(2)
SelectElement(MeineMucke(), p)
RunProgram("VLCPortable\VLCPortable.exe", Chr(34) + MeineMucke() + Chr(34), "") ; Pfad zum Mediaplayer
EndSelect
EndSelect
EndIf
Until Event = #PB_Event_CloseWindow
End
vielen dank kiffi!
hast mir sehr geholfen!
und die nächste frage:
wie kann ich beim starten des programmes die liste automatisch einlesen lassen?
Verfasst: 29.08.2007 22:15
von HeX0R
Zerosurf hat geschrieben:
und die nächste frage:
wie kann ich beim starten des programmes die liste automatisch einlesen lassen?
Jetzt ist selbständiges Denken gefragt...
Wenn ich mir den Codeschnippsel so anschaue, frage ich mich wieviel davon eigens erstellt wurde und wieviel einfach irgendwo rausgepappt und eingeklebt wurde...
Verfasst: 29.08.2007 22:21
von Kiffi
Zerosurf hat geschrieben:wie kann ich beim starten des programmes die liste automatisch einlesen lassen?
da Du das ganze sowieso auf CD oder DVD packen willst, kannst Du die
Liste
einmalig erstellen lassen (mit einem separaten Tool) und diese dann
mit Deinem Programm einlesen. Dann kannst Du sucheMusikdateien() aus
Deinem 'Player' entfernen und in das separate Tool einbinden.
Die Liste erstellst Du mit:
CreateFile(), WriteStringN(), CloseFile
Die Liste lässt sich einlesen mit folgenden Befehlen / Funktionen:
ReadFile(), EOF(), ReadString(), CloseFile()
Du musst die Befehle nur noch richtig anwenden.
Grüße ... Kiffi
Verfasst: 29.08.2007 22:26
von Zerosurf
Ich hätte aber gerne alles in einem tool und die möglichkeit die liste stets aktuell einzulesen!
Die liste wird ja durch den button 0 generiert, richtig?
es muss doch eine einfachere Möglichkeit geben die liste schon beim öffnen ohne benützung des button 0 einlesen zu lassen?
Verfasst: 29.08.2007 22:32
von Kiffi
Zerosurf hat geschrieben:Ich hätte aber gerne alles in einem tool und die möglichkeit die liste stets aktuell einzulesen!
... könnte ja sein, dass sich auf der CD irgendetwas ändert, oder?
Zerosurf hat geschrieben:Die liste wird ja durch den button 0 generiert, richtig?
Ähm, ja. Das solltest Du aber am besten wissen, weil Du derjenige bist, der
das Programm geschrieben hat.
Zerosurf hat geschrieben:es muss doch eine einfachere Möglichkeit geben die liste schon beim öffnen ohne benützung des button 0 einlesen zu lassen?
sorry, aber ich glaube fest daran, dass Du selber in der Lage bist, die
entsprechende Zeile zu lokalisieren und an den geeigneten Ort zu
verschieben. Oder mit anderen Worten:
HeX0R hat geschrieben:Jetzt ist selbständiges Denken gefragt...
Grüße ... Kiffi
Verfasst: 29.08.2007 22:38
von Zerosurf
oh mann - ich steh grad auf dem schlauch - laß mich doch bitte, bitte nicht so betteln!
muß ich eine oder mehrere zeile(n) verschieben oder kopieren?
ich tippe mal auf diesen abschnitt:
Code: Alles auswählen
sucheMusikdateien(GetGadgetText(1), MeineMucke())
ForEach MeineMucke()
AddGadgetItem(2, -1, MeineMucke())
Next
AddGadgetItem(2, -1, StrQ(CountList(MeineMucke()))+" Dateien gefunden")
aber was jetzt genau weiß ich auch nicht.
Nicht vergessen: Ich bin ein absoluter Anfänger!
mfg. Zerosurf
Verfasst: 29.08.2007 22:41
von Zerosurf
so glaube ich müßte es funktionieren:
Code: Alles auswählen
Procedure sucheMusikdateien(pfad.s, Liste.s(), typ.s="mp3,wma,wav,wmv,avi,ogg")
PathAddBackslash_(@pfad) ; Hängt Backslash an, falls nötig
Protected dir=ExamineDirectory(#PB_Any, pfad, ""), n
If dir
While NextDirectoryEntry(dir)
If DirectoryEntryType(dir) = #PB_DirectoryEntry_File
For n=1 To CountString(typ, ",")+1
If StringField(typ, n, ",") = LCase(GetExtensionPart(DirectoryEntryName(dir)))
AddElement(Liste())
Liste()=pfad+DirectoryEntryName(dir)
Break
EndIf
Next
Continue
ElseIf DirectoryEntryName(dir) <> "." And DirectoryEntryName(dir) <> ".."
sucheMusikdateien(pfad+DirectoryEntryName(dir), Liste(), typ)
EndIf
Wend
FinishDirectory(dir)
EndIf
EndProcedure
NewList MeineMucke.s()
OpenWindow(0, 0, 0, 600, 400, "Musik", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
ButtonGadget(0, WindowWidth(0)-105, 5, 100, 20, "Auflisten")
StringGadget(1, 5, 5, 485, 20, "\") ; Verzeichnis welches die Multimediadateien enthält
ListViewGadget(2, 5,30, 590, 365)
sucheMusikdateien(GetGadgetText(1), MeineMucke())
ForEach MeineMucke()
AddGadgetItem(2, -1, MeineMucke())
Next
AddGadgetItem(2, -1, StrQ(CountList(MeineMucke()))+" Dateien gefunden")
Repeat
Event = WaitWindowEvent()
Gadget= EventGadget()
If Event = #PB_Event_Gadget
If Gadget = 0
sucheMusikdateien(GetGadgetText(1), MeineMucke())
ForEach MeineMucke()
AddGadgetItem(2, -1, MeineMucke())
Next
AddGadgetItem(2, -1, StrQ(CountList(MeineMucke()))+" Dateien gefunden")
EndIf
Select EventGadget()
Case 2
Select EventType()
Case #PB_EventType_LeftDoubleClick
p = GetGadgetState(2)
SelectElement(MeineMucke(), p)
RunProgram("VLCPortable\VLCPortable.exe", Chr(34) + MeineMucke() + Chr(34), "") ; Pfad zum Mediaplayer
EndSelect
EndSelect
EndIf
Until Event = #PB_Event_CloseWindow
End
mfg. zerosurf