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”