Autor Beitrag
Swagger Jackin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: So 28.02.10 17:55 
Wenn ich bei einer Combobox Musik auswähle, soll das Programm jede ausgewählte Musik abspielen. Irgendwie spielt er nur die erste Musik ab, die ich definiert habe. Kann mir jemand sagen, warum ?

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
{=====================================================================}
procedure TForm15.Button1Click(Sender: TObject);
begin
  case ComboBox1.ItemIndex of
       0:
         begin
           Form1.mediaPlayer1.FileName := 'Collapse.wav';
           Form1.mediaplayer1.Open;
           Form1.mediaplayer1.Play;
           if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length
           then
             begin
               Form1.mediaPlayer1.Rewind;
               Form1.mediaPlayer1.Play;
             end;
         end;
       1:
         begin
           Form1.mediaplayer1.FileName := 'horse.wav';
           Form1.mediaplayer1.Open;
           Form1.mediaplayer1.Play;
           if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length
           then
             begin
               Form1.mediaPlayer1.Rewind;
               Form1.mediaPlayer1.Play;
             end;
         end;
       2:
         begin
           Form1.mediaplayer1.FileName := 'electro.wav';
           Form1.mediaplayer1.Open;
           Form1.mediaplayer1.Play;
           if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length
           then
             begin
               Form1.mediaPlayer1.Rewind;
               Form1.mediaPlayer1.Play;
             end;
         end;
       3:
         begin
           Form1.mediaplayer1.FileName := 'Memories.wav';
           Form1.mediaplayer1.Open;
           Form1.mediaplayer1.Play;
           if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length
           then
             begin
               Form1.mediaPlayer1.Rewind;
               Form1.mediaPlayer1.Play;
             end;
         end;
       4:
         begin
           Form1.mediaplayer1.FileName := 'Jackin.wav';
           Form1.mediaplayer1.Open;
           Form1.mediaplayer1.Play;
           if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length
           then
             begin
               Form1.mediaPlayer1.Rewind;
               Form1.mediaPlayer1.Play;
             end;
         end;
  end;



Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am So 28.02.2010 um 22:19


Zuletzt bearbeitet von Swagger Jackin am So 28.02.10 19:25, insgesamt 1-mal bearbeitet
COMMANDER86
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 167

Win XP, Win Vista
D3 Prof., D7 Pers., Lazarus
BeitragVerfasst: So 28.02.10 18:27 
Moin,

wird der Titel fortlaufend abgespielt? Also... wenn er zu Ende ist, fängt er von vorne wieder an? Wenn ja, kann es vl. sein, dass der MediaPlayer, während er läuft, keine neue Datei einladen kann. Füge mal die Zeile:
ausblenden Delphi-Quelltext
1:
Form1.MediaPlayer1.Stop;					

ein, bevor Du den FileName änderst.

PS:
Das hier:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
           Form1.mediaplayer1.Open;
           Form1.mediaplayer1.Play;
           if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length
           then
             begin
               Form1.mediaPlayer1.Rewind;
               Form1.mediaPlayer1.Play;
             end;

...kannnst Du auch einmal unter den Case-Bereich schreiben. Da das bei jeden Eintrag augenscheinlich das Selbe ist, macht das da drin nicht viel Sinn.

//EDIT: Änder' bitte den Titel ab. Der ist nicht sonderlich aussagekräftig. Danke!

LG
Fabian

_________________
Streichen Sie bitte sämtlichen Sarkasmus aus vorhergehender Nachricht. Dann wissen Sie, was ich sagen möchte. Meine Lösungen sind die vermutlich Umständlichsten, aber sie funktionieren (bei mir). ;)
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: So 28.02.10 18:31 
Es wäre klasse, wenn du diesem Thread einen aussagekräftigeren Titel geben würdest.

Dein Code weist sehr viele Redundanzen auf, das ist schlecht für die Wartbarkeit, so gehts kürzer:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm15.Button1Click(Sender: TObject); // TForm15 lässt Böses erahnen
const
  filenames: array[0..4of String = ('Collapse.wav''horse.wav''...''...''...');
begin
  if ((Combobox1.itemindex < low(filenames)) or (combobox1.itemindex > high(filenames))) then
    exit;
  Form1.mediaPlayer1.FileName := filenames[combobox1.itemindex];
  Form1.mediaplayer1.Open;
  if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length then
    Form1.mediaPlayer1.Rewind;
  Form1.mediaplayer1.Play;
end;

Der sollte genau das selbe tun wie dein Code, also sollte der Fehler auch erhalten geblieben sein.


Zuletzt bearbeitet von F34r0fTh3D4rk am So 28.02.10 18:42, insgesamt 3-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 28.02.10 18:38 
Hallo,

bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

Viele Grüße,
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Swagger Jackin Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: So 28.02.10 19:27 
ey danke, ich werde gleich mal den Quelltext von euch ausprobieren!!
Swagger Jackin Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: So 28.02.10 20:04 
user profile iconSwagger Jackin hat folgendes geschrieben Zum zitierten Posting springen:
ey danke, ich werde gleich mal den Quelltext von euch ausprobieren!!


Leider spielt er immer noch nur die Collapse.wav datei, eagl ob ich die anderen wähle. Wenn ich die horse.wav wähle soll sie abgespielt werden, will aber nicht.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm15.Button1Click(Sender: TObject); // TForm15 lässt Böses erahnen
const
  filenames: array[0..4of String = ('Collapse.wav''horse.wav''...''...''...');
begin
  if ((Combobox1.itemindex < low(filenames)) or (combobox1.itemindex > high(filenames))) then
    exit;
  Form1.mediaPlayer1.FileName := filenames[combobox1.itemindex];
  Form1.mediaplayer1.Open;
  if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length then
    Form1.mediaPlayer1.Rewind;
  Form1.mediaplayer1.Play;
end;

--> fruchtet noch nicht.

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: So 28.02.10 20:07 
Zitat:
Der sollte genau das selbe tun wie dein Code, also sollte der Fehler auch erhalten geblieben sein.

Oder was meinst du mit "fruchten"? Hast du mal stop() an den Anfang hinzugefügt?
Swagger Jackin Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: So 28.02.10 20:13 
user profile iconF34r0fTh3D4rk hat folgendes geschrieben Zum zitierten Posting springen:
Zitat:
Der sollte genau das selbe tun wie dein Code, also sollte der Fehler auch erhalten geblieben sein.

Oder was meinst du mit "fruchten"? Hast du mal stop() an den Anfang hinzugefügt?


fruchten = es geht oder nicht

mit stop hab ich noch nicht ausprobiert, weil ich es nicht weiß was amn dahin schreibt. :autsch:
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: So 28.02.10 20:28 
user profile iconCOMMANDER86 hat folgendes geschrieben Zum zitierten Posting springen:
Moin,

wird der Titel fortlaufend abgespielt? Also... wenn er zu Ende ist, fängt er von vorne wieder an? Wenn ja, kann es vl. sein, dass der MediaPlayer, während er läuft, keine neue Datei einladen kann. Füge mal die Zeile:
ausblenden Delphi-Quelltext
1:
Form1.MediaPlayer1.Stop;					

ein, bevor Du den FileName änderst.

Sind Lesen und Abschreiben wirklich so schwierig?
Swagger Jackin Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: So 28.02.10 22:18 
Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt.

teilweise ja. 8)

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

Mit dem Stop stürzt das Programm ab. zeigt Fehler beim Spielfeld an.

:( :(
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: So 28.02.10 22:38 
Vieleicht solltest Du es mit MP.Close versuchen da du ja beim wechseln den MP ja wieder öffnest.
Swagger Jackin Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: So 28.02.10 22:52 
user profile iconBlackheart666 hat folgendes geschrieben Zum zitierten Posting springen:
Vieleicht solltest Du es mit MP.Close versuchen da du ja beim wechseln den MP ja wieder öffnest.


Jetzt stürtzt das Spiel nicht mehr ab, aber spielt immer nur das erste Lied, nicht die anderen, egal ob man sie auswählt.
Ein neues Problem ist aufgetreten, das wenn ich die Musik bei den Einstellungen auswähle, sie abgespielt wird, kann ich im Menü die Musik nicht mehr stoppen, Spiel stürzt ab, sobald ich auf stop drücke.