-
Forum: Object-Pascal / Delphi-Language
Delphi
by Dalai,
10. Mai 2012
OK, also ist die Datei an sich in Ordnung und es liegt an selbiger. Ich habe gerade selber etwas rumprobiert und festgestellt, dass MP3s gar nicht abgespielt werden und stattdessen nur ein Beep aus den PC-Speaker kommt (wird wohl daran liegen, dass ich "Standard-Warnton" deaktiviert habe). D.h. du musst schauen, welche Codierung deine WAV verwendet, denn WAV ist nicht gleich WAV (man kann in WAV...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Dalai,
10. Mai 2012
Siehe meine Ergänzung im vorigen Post.
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Dalai,
10. Mai 2012
Mach mal Lazarus zu, öffne es wieder, lade dein Projekt und starte es via Menü Start > Alles neu kompilieren.
Ergänzung:
Gib mal unter Start > Ausführen folgendes ein (am besten den Kram kopieren):"%ProgramFiles%\Windows Media Player\wmplayer.exe" "C:\Users\Filip\Documents\Schule\Physik und Technik\Physik und Technik\PT-Projekt\Programm\Modem.wav"inkl. der Anführungszeichen. Wird die Datei...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Dalai,
10. Mai 2012
Nein. So wie der Pfad da steht, ist er ein absoluter Pfad. Und der Rückgabewert der Funktion FileExists deutet darauf hin, dass es diese Datei nicht gibt. Vom Projektordner aus wäre es ein relativer Pfad, mit denen man immer sehr vorsichtig umgehen muss, denn eine Relation hat immer einen Bezugspunkt.
Gibt es die Datei Modem.wav denn nun in dem angegebenen Verzeichnis, nachdem du die...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Dalai,
10. Mai 2012
Lass dir die Dateiendungen anzeigen, alles andere ist Pfusch (verstehe eh nicht, warum MS diesen Unsinn seit Jahren vorgibt, der nur für Verwirrung sorgt und Angriffsflächen bietet). Systemsteuerung > Orderoptionen > Register "Ansicht" > Option "Erweiterungen bei bekannten Dateitypen ausblenden" deaktivieren.
MfG Dalai
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Dalai,
10. Mai 2012
Wenn der Pfad stimmt, stimmt der Dateiname nicht. Denn die FileExists-Funktion gibt ja nicht ohne Grund False zurück.
MfG Dalai
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Dalai,
10. Mai 2012
Ich hab den Code doch genau so gegeben. Die Anweisung ShowMessage steht vor der if-Bedingung. Insofern verstehe ich das Problem nicht.
Ist das Verzeichnis "Physik und Technik" wirklich doppelt? Was passiert, wenn du genau diesen Pfad (ohne den Dateinamen Modem.wav) in die Adresszeile des Explorers kopierst und bestätigst?
MfG Dalai
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Dalai,
10. Mai 2012
Das kann nicht sein. Die erzeugte Dialogbox mit dem Pfad der abzuspielenden Datei muss in jedem Fall auftauchen, völlig egal, ob letztere existiert.
Ein Pfad wird gar nicht erstellt. Es wird ein String zusammengebaut aus Einzelteilen und das Resultat benutzt.
MfG Dalai
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Dalai,
10. Mai 2012
Und was verstehst du jetzt daran nicht? Das von dir beobachtete Verhalten ist der abgelaufene Codefluss oder Block von Anweisungen, die wirklich ausgeführt wurden. Hast du dich noch nicht gefragt, wie man feststellt, ob ein Programm die Anweisungen ausführt, die man sich im Kopf vorstellt? Genau dafür sind der Debugger und die Haltepunkte da (es gibt noch mehr Dinge, aber die sind weniger...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Dalai,
10. Mai 2012
Natürlich hat er das, sofern keine Syntaxfehler drin sind.
Deshalb der Hinweis auf die Haltepunkte. Der Sinn dahinter ist, Schritt für Schritt durch den Code zu gehen, aber alle unwichtigen Units außen vor zu lassen. Setz mal einen Haltepunkt in der Zeile 45 der Unit1 (if FileExists()), indem du auf die Zeilennummer in deinem Lazarus klickst. Dann wird die Zeile rot hinterlegt und wenn du nun...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Dalai,
10. Mai 2012
Logisch, weil die Existenz der abzuspielenden Datei vorher geprüft wird - existiert sie nicht, wird gar nicht erst versucht, sie abzuspielen.
Vor dem modalen Anzeigen der Form2 den Sound abspielen lassen, ist notwendig, denn modales Anzeigen bedeutet, dass der Codefluss unterbrochen wird und erst nach dem Schließen des modalen Fensters fortgesetzt wird. Konkret auf deinen Code bezogen bedeutet...