Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi OLE Excel beenden (https://www.delphipraxis.net/11374-ole-excel-beenden.html)

Sidores 5. Nov 2003 11:51


OLE Excel beenden
 
Moin,
ich muss vorhandene Excel Tabbelle erweitern.
Ist ja eigentlich kein Problem, doch wie kann ich excel dann richtig schließen(ist immer noch in der Prozzese-Liste des TaskManagers)
Ich wollte das so machen:
Code:
Unit1.excel := CreateOleObject('Excel.Application');
 //Lade die Datei,fügen Daten hinzu,und speichere
Excel.Workbooks.close;
excel.Quit;
Wieso geht das nicht?

Danke

APP 5. Nov 2003 12:38

Re: OLE Excel beenden
 
Hallo Sidores,
das mit dem OLE-Excel ist eine eigene Wissenschaft, ich helfe mir dabei so:

Delphi-Quellcode:
  TRY
    WS.Disconnect; // Worksheet
    WBk.Disconnect; // Workbook
    ExcelApp.Quit; // Excel
    ExcelApp.Destroy;
  EXCEPT
    ...
  END

Sidores 5. Nov 2003 12:53

Re: OLE Excel beenden
 
Dann kommt folgende Fehlermeldung
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EOleError aufgetreten. Meldung: 'Die Methode 'Destroy' wird vom Automatisierungsobjekt nicht unterstützt'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------

APP 5. Nov 2003 14:46

Re: OLE Excel beenden
 
Hallo Sidores,
ich benutze die Komponenten vom Reiter "Servers", dort gibt es dann die Methode Destroy.

p.s.
Mein Projekt ist schon ein Weilchen her, daher kann icch mich nur wage erinnern,
dass ich auf die Serverkompos gekommen bin, weil ich mit "CreateOleObject" ähnl.
Schwierigkeiten hatte wie Du.

neolithos 5. Nov 2003 19:54

Re: OLE Excel beenden
 
eigentlich fehlt oben nur ein

Delphi-Quellcode:
excel := Unassigned;
Denke ich!

Niko 5. Nov 2003 20:16

Re: OLE Excel beenden
 
Die Zuweisung von Unassigned hat keinen Einfluss auf Excel, sondern kennzeichnet die Variable nur als unbelegt.
@Sidores: Eigentlich sollte deine Lösung funktionieren, aber probier mal Excel.Application.Close.

neolithos 5. Nov 2003 20:20

Re: OLE Excel beenden
 
Nicht nur das sondern es wird auch der ReferenzCounter des Schnittstellen-Objectes um eins gesenkt.

Was zur folge hat das Excel beendet werden kann!

So war es bei mir!

Sidores 6. Nov 2003 07:56

Re: OLE Excel beenden
 
@Niko Jetzt kommt auch ne Fehlermeldung, nur mit der Methode 'Close'

Sidores 6. Nov 2003 08:00

Re: OLE Excel beenden
 
Es geht:
Code:
Unit1.excel := CreateOleObject('Excel.Application');
 //Lade die Datei,fügen Daten hinzu,und speichere
Excel.Workbooks.close;
Excel.Application.Quit;
Hätte ich auch früher drauf kommen können.
Danke für die Antworten

Niko 6. Nov 2003 18:36

Re: OLE Excel beenden
 
Entschuldigung, mein Fehler. Ich wollte eigentlich auch Application.Quit schreiben :oops: .


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:46 Uhr.

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