Einzelnen Beitrag anzeigen

Benutzerbild von Mamphil
Mamphil

Registriert seit: 17. Jul 2004
Ort: Garching b. München
149 Beiträge
 
Delphi 7 Professional
 
#1

Trotz try...finally: Exception "Klasse nicht registrier

  Alt 9. Jun 2005, 15:19
Hallo!

Der folgende Code wird in einem Projekt beim Starten ausgeführt. Es soll überprüft werden, ob Excel installiert ist und ggf. die entsprechenden Menüpunkte freischalten:
Delphi-Quellcode:
  // Ist Excel installiert? (zum Einlesen / Abspeichern der Spielpläne)
  // Menü-Punkte ausschalten:
  Hauptform.ImportierenXLS1.Enabled := false;
  Hauptform.ExportierenXLS1.Enabled := false;
  XLApp := TExcelApplication.Create(Self);
  try
    XLApp.Connect;
    // wenn's klappt: Menüpunkte wieder einschalten
    Hauptform.ImportierenXLS1.Enabled := true;
    Hauptform.ExportierenXLS1.Enabled := true;
  finally
    XLApp.Disconnect;
  end;
Obwohl das XLApp.Connect im try..finally-Block steht wird die folgende Exception ausgelöst wenn Excel nicht installiert ist:
Code:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt SchiriManager.exe ist eine Exception der Klasse EOleSysError aufgetreten. Meldung: 'Klasse nicht registriert'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK  Hilfe  
---------------------------
Ich habe schon hier im Forum eine Beschreibung des Fehlers gefunden (http://www.delphipraxis.net/internal...se+registriert) aber von einem Lösungsweg steht dort nichts.

Bisher dachte ich, dass ein try..-Block Exceptions abfängt und ich so darauf reagieren kann. Aber dass mir so oder so eine Fehlermeldung um die Ohren geworfen wird, ist doch sicherlich nicht Sinn der Sache...

Habt ihr eine Idee, wie ich überprüfen kann, ob Excel installiert ist, ohne dass ich mich mit dieser Fehlermeldung herumschlagen muss? Am liebsten wäre mir natürlich, wenn ihr mir erklären könnt, weshalb das try im obigen Fall nicht greift.

Vielen Dank im Voraus!
Mamphil
The laws of physics are the canvas God laid down on which to paint his masterpiece. “Leonardo Vetra” in Dan Brown’s “Angels & Demons”
  Mit Zitat antworten Zitat