AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi OLE - Excel schließt sich nach Create
Thema durchsuchen
Ansicht
Themen-Optionen

OLE - Excel schließt sich nach Create

Ein Thema von WizoHulk · begonnen am 2. Mai 2011 · letzter Beitrag vom 3. Mai 2011
Antwort Antwort
Seite 1 von 2  1 2      
WizoHulk

Registriert seit: 25. Jun 2010
198 Beiträge
 
Delphi 5 Enterprise
 
#1

OLE - Excel schließt sich nach Create

  Alt 2. Mai 2011, 13:54
hallo

ich bin hier schon am verzweifen.
Ich erstelle mir eine neue Excel Instanz mit diesem code
Delphi-Quellcode:
try
  Excel := CreateOleObject('Excel.Application'); //Instanz wird erstellt
  Excel.Visible := True; //Ohne Worte
except
  ShowMessage(ERROR_MSG);
end;
aber sobald ich aus der procedure raus gehe schließt sich excel.
Hat jemand eine vermutung woran das liegen könnte?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: OLE - Excel schließt sich nach Create

  Alt 2. Mai 2011, 14:01
Wo ist die Variable Excel definiert.

Ich Tipp darauf das sie in der Methode definiert ist.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: OLE - Excel schließt sich nach Create

  Alt 2. Mai 2011, 14:01
nimm mal die Variablendeklartion vom Stack, also irgendwo in den Private oder Public Bereich....
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#4

AW: OLE - Excel schließt sich nach Create

  Alt 2. Mai 2011, 14:08
Delphi-Quellcode:
uses ComObj, Excel2000;

procedure TAddInModule.test;
var
  IExcel: ExcelApplication;
begin
  IExcel := CreateOLEObject('Excel.Application') as ExcelApplication;
  if Assigned(IExcel) then
    try
      // TODO
      //IExcel.DoSomething
    finally
      IExcel := nil;
    end;
end;
Ich würde auch immer direkt mit dem Typ arbeiten. Über das Menü -> Komponente -> Komponente importieren... kannst du die entsprechende Typbibliothek importieren.
Sebastian

Geändert von geskill ( 2. Mai 2011 um 14:11 Uhr)
  Mit Zitat antworten Zitat
WizoHulk

Registriert seit: 25. Jun 2010
198 Beiträge
 
Delphi 5 Enterprise
 
#5

AW: OLE - Excel schließt sich nach Create

  Alt 2. Mai 2011, 14:08
klappt wunderbar. Danke.
Was mich dann aber wundert das es bei Word funktioniert.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: OLE - Excel schließt sich nach Create

  Alt 2. Mai 2011, 14:12
klappt wunderbar. Danke.
Was mich dann aber wundert das es bei Word funktioniert.
Da wurde von MS implementiert das ein erzeugte Instanz explizit per .Close-Aufruf geschlossen wird.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
WizoHulk

Registriert seit: 25. Jun 2010
198 Beiträge
 
Delphi 5 Enterprise
 
#7

AW: OLE - Excel schließt sich nach Create

  Alt 2. Mai 2011, 15:03
habe die Variablen jetzt im Privat bereich deklariert.
jetzt wirft er mir aber eine exception wenn ich excel oder word createn will.

hier mal mein code
Delphi-Quellcode:
//********************************************************************************************************
// Microsoft OLE *}
{*    Anfang     *}
type
  TOffice = class(TObject)
  private
 // Excel : OleVariant;
// Word : OleVariant;
  public
    Excel : OleVariant;
    Word : OleVariant;
    constructor Create;
    destructor destroy;override;
    procedure OeffneWord(NeuesDokument: Boolean = False);
    procedure OeffneExcel(NeueTabelle : Boolean = False);
  end;

{*     Ende      *}

implementation
//*********************************************************************************************************
// MICROSOFT
// *Anfang*
//*********************************************************************************************************

constructor TOffice.Create;
begin
// mach was
end;

destructor TOffice.destroy;
begin
//destroy
end;

procedure TOffice.OeffneExcel(NeueTabelle : Boolean = False);
const
  ERROR_MSG : string = 'Microsoft Excel kann nicht starten!';

begin
  try
    Excel := GetActiveOleObject('Excel.Application');
    Excel.Windowstate := wsNormal
  except
    {* Ist keine Vorhanden wird neu erstellt *}
    try
      screen.Cursor := crHourGlass; //SandUhr Aktiv
      Excel := CreateOleObject('Excel.Application'); //Instanz wird erstellt
      Excel.Visible := True; //Ohne Worte
      if NeueTabelle then
        Excel.Workbooks.Add; //ein Tabsheet wird hinzugefügt
      screen.Cursor :=crDefault; //Sanduhr Deaktiv
    except
      ShowMessage(ERROR_MSG);
    end;
  end;
  screen.cursor:=crDefault;
end;

procedure TOffice.OeffneWord(NeuesDokument: Boolean = False);
var
  Word : OleVariant;
begin
 try
   {* Prüfe ob instanz vorhanden ist *}
   Word := GetActiveOleObject('Word.Application');
   Word.WindowState := wsNormal;
 except
   try
     screen.Cursor := crHourGlass;
     Word := CreateOleObject('Word.Application');
     Word.Visible := True;
     if NeuesDokument then
       Word.Documents.Add;
   except
     ShowMessage('Microsoft Word kann nicht starten.');
   end;
 end;
 screen.cursor:=crDefault;

end;

//*********************************************************************************************************
// MICROSOFT
// *Ende*
//*********************************************************************************************************
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: OLE - Excel schließt sich nach Create

  Alt 2. Mai 2011, 15:08
jetzt wirft er mir aber eine exception wenn ich excel oder word createn will.
Es wäre gut zu wissen wie der Text dieser Fehlermeldung aussieht.
Meine Glaskugel ist noch in den Osterferien
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#9

AW: OLE - Excel schließt sich nach Create

  Alt 2. Mai 2011, 15:11
Hast Du eine Instanz von TOffice erzeugt und verwendest diese?
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
WizoHulk

Registriert seit: 25. Jun 2010
198 Beiträge
 
Delphi 5 Enterprise
 
#10

AW: OLE - Excel schließt sich nach Create

  Alt 2. Mai 2011, 15:42
ohhh Kommando zurück. hatte im constructor und im destructor inherited vergessen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:39 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