Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Excel als Variant starten (https://www.delphipraxis.net/41866-excel-als-variant-starten.html)

luckystar85 9. Mär 2005 21:26


Excel als Variant starten
 
Ich möchte gerne Daten aus meinen Programm in Microsoft Excel exportieren. Dazu starte ich Excel wie folgt:

Code:var
Excel : Variant;
begin
try
Excel := GetActiveOleObject('Excel.Application');
except
try
Excel := CreateOleObject('Excel.Application');
except
MessageDlg('Microsoft© Excel konnte NICHT initialisiert werden!' + #13#10 +
'Systemfehler: ' + IntToStr(GetLastError) + #13#10 +
SysErrorMessage(GetLastError), mtWarning, [mbOk], 0);
exit;
end;
end;

Ich möchte das aber nicht mit Excelkomponenten machen.
Doch bei GetActiveOleObject bekommt mein Programm immer eine Exception, weil es das Objekt nicht gibt und erzeugt es dann im except.
Wenn ich aber das GetActiveOleObject weglasse und es immer wieder neu erzeuge habe ich nachher so viele Prozesse laufen.
Ist es auch möglich nur ein Prozess zu starten, ohne Exception?

toms 9. Mär 2005 21:48

Re: Excel als Variant starten
 
Hallo,

Starte das Programm mal ausserhalb der Delphi IDE.
Dann kommt keine Exception.

luckystar85 9. Mär 2005 21:52

Re: Excel als Variant starten
 
Ja, das ist klar, wegen dem try except. Aber da ich das Programm meistens in der IDE starte, wegen debuggen und so, da nervt es dann immmer.

semo 9. Mär 2005 22:06

Re: Excel als Variant starten
 
hallo? einmal f9 drücken und weiter gehts....
wenn dich als programmierer sowas nervt... ich weiß ja nicht.

luckystar85 9. Mär 2005 22:09

Re: Excel als Variant starten
 
Na gut, ich dachte ich könnte das umgehen. Wenn es sich nicht ändern lässt.

Binärbaum 9. Mär 2005 23:26

Re: Excel als Variant starten
 
Zitat:

Zitat von luckystar85
Na gut, ich dachte ich könnte das umgehen. Wenn es sich nicht ändern lässt.

Ich glaube, dass ich irgendwann mal hier in der DP gelesen habe, dass man dieses Verhalten irgendwie abstellen kann. Allerdings weiß ich jetzt nicht mehr, wie.
Vielleicht hilft dir da die Suche weiter.

MfG
Binärbaum

padavan 10. Mär 2005 07:09

Re: Excel als Variant starten
 
in den Debugger Optionen

Bernhard Geyer 10. Mär 2005 07:18

Re: Excel als Variant starten
 
Delphi-Quellcode:
var
  Excel : Variant;
begin
  Excel := CreateOleObject('Excel.Application');
  try
    ... Dein Code ...
  finally
    FWorkBook.Close(SaveChanges:=False); <- Evtl geöffnete Workbooks (XLS-Dateien) auch wieder schließen
    Excel.Quit;
    Excel := UnAssigned;
  end;
end;
Bei Excel ist es entgegen der COM-gepflogenheiten auch immer noch nötig die Instanzen mit Quit zu beenden.
Ist zwar m.E. Blödsinn, da Excel aufgrund der Referenzzählung selbst feststellen könnte wann die Instanz beendet werden kann, aber es ist halt von M$. Da zählen die eigens aufgestellten (COM-)Regeln nichts.

luckystar85 10. Mär 2005 11:54

Re: Excel als Variant starten
 
Alles klar, danke schön das hilft mir weitr.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:08 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