CreateOleObject(´Excel.Application´) está dando erro !!!

Delphi

20/06/2005

uso o delphi 7.0
Galera, criei uma variavel excel: variant depois chamei a instrução abaixo

Excel := CreateOleObject(´Excel.Application´) e quando passa por aqui
diz ´CoInitialize não foi chamado´

o que faço ????


Dr. Interbase

Dr. Interbase

Curtidas 0

Melhor post

Japa

Japa

20/06/2005

Tente incruir na uses da sua form [b:4372c9c613]comobj[/b:4372c9c613]... deve ser isso...


GOSTEI 1

Mais Respostas

Dr. Interbase

Dr. Interbase

20/06/2005

Já coloquei o comobj, pois se não tivesse nem compilaria

O que faço ????


GOSTEI 0
Phibis

Phibis

20/06/2005

Experimente adicionar além do ComObj, a Unit Excel2000 ou 97 dependendo do caso.

até mais.


GOSTEI 0
Tronbr

Tronbr

20/06/2005

na unit que está ocorrendo o erro inclua em uses ActiveX, e no final antes do
end. 
inclua o seguinte
 initialization
CoInitialize(nil);

finalization
CoUnInitialize;

t+


GOSTEI 0
Steve_narancic

Steve_narancic

20/06/2005

Fiz isso e o erro continua ocorrendo. Alguem teria outra sugestão???


GOSTEI 0
Massuda

Massuda

20/06/2005

Pergunta boba... você tem o Excel instalado nessa máquina?


GOSTEI 0
Steve_narancic

Steve_narancic

20/06/2005

Sim tenho,
o estranho é que para outro relatório que também faz exportaçao para excel funciona perfeitamente!


GOSTEI 0
Massuda

Massuda

20/06/2005

Você está fazendo isso numa thread separada?

A solução do tronbr é boa para os casos onde uma única thread (a principal) vai usar o Excel, mas não vai funcionar se houver mais de uma thread.


GOSTEI 0
Devmedia

Devmedia

20/06/2005

olá

Na cláusula USES, adicione as 3 bibliotecas abaixo:

uses
xlconst, COMOBJ, SHELLAPI [...]
GOSTEI 0
Wanderson

Wanderson

20/06/2005

Fiz isso e o erro continua ocorrendo. Alguem teria outra sugestão???






//Adiciona no Uses:

uses
System, ComObj;

//Declare a Variavel:

var
planilha : variant;

//Procedimento

planilha:= CreateoleObject('Excel.Application');
planilha.WorkBooks.add(1);
planilha.caption := 'Nome-desejado';
planilha.WorkBooks[1].WorkSheets[1].Name := 'Nome-desejado';
planilha.visible := true;
planilha.columns.Autofit;



GOSTEI 0
POSTAR