![]() |
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:
Wieso geht das nicht?
Unit1.excel := CreateOleObject('Excel.Application');
//Lade die Datei,fügen Daten hinzu,und speichere Excel.Workbooks.close; excel.Quit; Danke |
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 |
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 --------------------------- |
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. |
Re: OLE Excel beenden
eigentlich fehlt oben nur ein
Delphi-Quellcode:
Denke ich!
excel := Unassigned;
|
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. |
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! |
Re: OLE Excel beenden
@Niko Jetzt kommt auch ne Fehlermeldung, nur mit der Methode 'Close'
|
Re: OLE Excel beenden
Es geht:
Code:
Hätte ich auch früher drauf kommen können.
Unit1.excel := CreateOleObject('Excel.Application');
//Lade die Datei,fügen Daten hinzu,und speichere Excel.Workbooks.close; Excel.Application.Quit; Danke für die Antworten |
Re: OLE Excel beenden
Entschuldigung, mein Fehler. Ich wollte eigentlich auch Application.Quit schreiben :oops: .
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz