Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Fehler bei Excel.workbooks.Open (...)

  Alt 6. Aug 2008, 12:38
Ich würde die frühe Bindung empfehlen und bei Problemen kurzzeitig auf die späte Bindung umschalten:
Delphi-Quellcode:
uses ExcelXP;
...
var Excel : TExcelApplication;
    WB : _WorkBook;
    x : OleVariant;
...
  x := Excel.Workbooks.Open(strDokument);
  // man kann hier sogar benannte Parameter verwenden.
  // das erhöht die Lesbarkeit des Code und man erspart sich die "EmptyParam"-Orgie
  x := Excel.Workbooks.Open(FileName:=strDokument); // "FileName" ist der Parametername

  // zur Sicherheit prüfen, dass auch wirklich ein Dispatch-Interface vorliegt:
  if VarType(x) <> varDispatch then
     raise Exception.Create('Problem bei Ansteuerung von Excel');

  // und jetzt wieder zurück zur frühen Bindung
  WB := IDispatch(x) as _WorkBook;

  // jetzt gibt es 2 Referenzen auf das Workbook-Objekt
  // wer mag, kann jetzt die Referenz auf IDispatch-Interface freigeben
  x := Unassigned;
Mit diesem Trick kann man das Beste aus beiden Welten (frühe und späte Bindung) vereinen.
  Mit Zitat antworten Zitat