Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi "Delphi"-Exceptions verhindern (https://www.delphipraxis.net/10629-delphi-exceptions-verhindern.html)

DelphiUser7 22. Okt 2003 13:51


"Delphi"-Exceptions verhindern
 
Hi,
ich habe folgende Exception geschrieben:
Delphi-Quellcode:
try
   mediaplayer1.Open;
  except
   MessageBox(0,'Fehler beim Laden der Datei','Datei kann nicht geladen werden',16);
   FileLoad1.FileName := '';
   mediaplayer1.Open;
  end;
wie kann ich jetzt proggen, dass das Programm, wenn ich es auf IDE-Basis, d.h. nicht von Delphi ausgehend (=> F9) starte, nur noch meine eigene Exception anzeigt, und nicht auch noch die Exception, die das Programm bei einem Fehler normalerweise anzeigt; die ist nämlich für den Anwender sehr unverständlich :mrgreen: ;

Gruss
DelphiUser7

Jens Schumann 22. Okt 2003 13:59

Re: "Delphi"-Exceptions verhindern
 
Hallo,
mediaplayer1.Open;
aus dem except Abschnitt rausnehmen.

Nalincah 22. Okt 2003 14:02

Re: "Delphi"-Exceptions verhindern
 
try
..
except
on e.exception do
begin
QUELLCODE FÜR EXCEPTION
end;
end;

So müsste es glaub ich gehen

Wormid 22. Okt 2003 14:05

Re: "Delphi"-Exceptions verhindern
 
Delphi-Quellcode:
procedure TForm1.HandleMCIDeviceError;
begin
  ShowMessage('Mist!');
  Form1.MediaPlayer1.Close;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  try
    MediaPlayer1.Open;
  except
    on E: EMCIDeviceError do HandleMCIDeviceError;
  end;
end;
:hi:

DelphiUser7 23. Okt 2003 10:20

Re: "Delphi"-Exceptions verhindern
 
Hi,
entschuldigung, dass ich nochmal poste, aber da ist noch ein Problem aufgetaucht: Die Sache mit der vom Programm erstellten Exception hab ich mittlerweile in den Griff bekommen :) , aber was kommt danach :?: ; ich meine, der Anwender muss ja früher oder später auch mal eine Datei öffnen können, nachdem er einen Dateinamen falsch eingegeben hat; das heißt also im Klartext :arrow: Ich möchte wissen, wie man den ÖffnenDialog noch 'am Leben erhalten' kann, bis der Benutzer entweder auf 'Abbrechen' klickt, oder eine Datei öffnet;
Hoffe, ihr versteht mein Problem;
Mein Quelltext sieht momentan folgendermaßen aus:
Delphi-Quellcode:
try
    mediaplayer1.Open;
  except
    HandleMCIDeviceError;
   try
    fileLoad1.Execute;
   except
    on E: EMCIDeviceError do HandleMCIDeviceError2;
   end;
  end;
Jetzt die beiden Fehlerbehandlungsroutinen:

Delphi-Quellcode:
procedure TForm1.HandleMCIDeviceError;
begin
 ShowMessage('Datei kann nicht geöffnet werden!'+#13+'Player wurde nicht geöffnet!');
 Form1.MediaPlayer1.Close;
end;

procedure TForm1.HandleMCIDeviceError2;
begin
 ShowMessage('Es wurde keine Datei geladen!');
end;

DelphiUser7 23. Okt 2003 10:38

Re: "Delphi"-Exceptions verhindern
 
Hallo? Seid ihr noch da?

Tom 23. Okt 2003 10:42

Re: "Delphi"-Exceptions verhindern
 
Zitat:

Zitat von DelphiUser7
Hallo? Seid ihr noch da?

Ja.

Tom der glaubt sich daran erinnern zu können, dass es hier kein Antwortzwang gibt.

Wormid 23. Okt 2003 10:46

Re: "Delphi"-Exceptions verhindern
 
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;

DelphiUser7 23. Okt 2003 11:15

Re: "Delphi"-Exceptions verhindern
 
@ Tom;
natürlich nicht, aber wozu ist denn ein Forum sonst da, als um 'Infos' auszutauschen;
hat ja auch niemand gesagt, dass IHR eine Antwort auf meine Frage haben MÜSST;
Antwortzwang, dieses Wort existiert, soweit ich weiß, überhaupt nicht im Deutschen Wörterbuch,
aber ich weiß natürlich trotzdem, was gemeint ist;
:mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen:

@ Wormid;
Erst mal danke für den SourceCode, aber ein Problem besteht immer noch: WENN man auf 'Abbrechen' klickt, DANN zeigt das Programm immer noch an: 'Es konnte kein MCI-Gerät geöffnet werden!' bzw. als Exception: 'Kein MCI-Gerät geöffnet!';
Und weiterarbeiten kann das Programm damit natürlich schlecht!;
Außerdem wird der OpenDialog 2 Mal angezeigt, und erst nach dem 2. Mal nimmt er die Eingabe an;
:shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock:

DelphiUser7

Ghostwalker 23. Okt 2003 12:18

Re: "Delphi"-Exceptions verhindern
 
öhmmmm.....warum nicht einfach im Open-Dialog in den Optionen

PathMustExist=True
FileMustExist=True

Dann kommt der erst garnicht raus ohne eine Gültige Datei gewählt zu haben (mit entsprechenden filtern kannst du sogar den typ feststellen !)


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:45 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz