Eine Unterfunktion macht doch im Endeffekt nichts anderes, und dabei noch einen Function-Call ... klingt langsamer.
Man verliert wenige Mikrosekunden aber man verbessert die Struktur der Software.
Eine der wichtigsten Grundprinzipien der Softwareentwicklung nennt sich "
Don't
Repeat
Yourself"
Es muss dir doch auffallen, dass grosse Abschnitte deines Codes aus ständigen Wiederholungen von gleichen oder stark ähnlichen Teilen bestehen.
Fester Pfad, nichts zu rütteln.
Das kann jeder behaupten.
Wer sagt denn, dass die Variable
path innerhalb der
procedure TForm1.MidiMessageInFile
den korrekten Wert hat?
Vielleicht fehlt ja nur ein abschliesender Backslash oder der Pfad ist relativ.
Glauben heisst nicht wissen.
Du musst schon den Beweis erbringen, dass der Dateiname den du
BassPlayer.PlaySound()
übergibst auch wirklich existiert.
Es reicht auch nicht wenn du nur mit dem Debugger den Pfad anschaust.
Das menschliche Gehirn ist manchmal blind gegenüber Buchstabendrehern und ähnlichen Fehlern.
Das ist der berühmte
Tomaten-auf-den-Augen-Effekt.
Daher: Beweise zuerst, dass die Datei existiert (mit der Funktion
FileExists()
) und erst dann kann man den BassPlayer verdächtigen nicht korrekt zu arbeiten.