So wird der Opendialog so lange angezeigt, bis eine gültige Datei ausgewählt wurde, oder der Anwender auf abbrechen geklickt hat.
Ne elegantere Lösung ist mir auf die schnelle nicht eingefallen.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var UserCanceled: Boolean;
begin
MediaPlayer1.Filename := '';
repeat
UserCanceled := not OpenDialog1.Execute;
if not UserCanceled then
begin
try
MediaPlayer1.FileName := OpenDialog1.FileName;
MediaPlayer1.Open;
except
on E: EMCIDeviceError do
begin
ShowMessage(ExtractFileName(OpenDialog1.Filename) + ' konnte nicht geöffnet werden!');
MediaPlayer1.Filename := '';
UserCanceled := false;
end;
end;
end;
until (Length(MediaPlayer1.FileName) > 0) OR UserCanceled;
end;
Debuggers don't remove Bugs, they only show them in Slow-Motion.