Parâmetros em Threads
Bom dia
Hoje estive tentando usar Threads para gerenciar rotinas de exportação de Tabelas.
Tenho uma Unit (UniLibGeral), que contém as minha rotinas de exportação como segue :
procedure ExportaExcel(ACliDataSet : TDataSet; ATitulo, AFileName : String);
procedure ExportaWord (ACliDataSet : TDataSet; ATitulo, AFileName : String);
procedure ExportaHTML (ACliDataSet : TDataSet; ATitulo, AFileName : String);
procedure ExportaTXT (ACliDataSet : TDataSet; ATitulo, AFileName : String);
as Rotinas de exportação para Word e Excel são lentas, por isto gostaria de colocá-las em uma Thread.
Criei uma Thread (ThPrin), mas surgiu a dúvida na hora de passar os parâmetros, veja :
procedure thPrin.Execute;
begin
{ Place thread code here }
ExportaExcel(); <-----------------Como pegar estes parâmetros que vem do Form que chama o Relatório?
end;
Posso alterar o constructor do Execute para aceitar parâmetros? Como Fazê-lo?
Grato,
Moliva
Hoje estive tentando usar Threads para gerenciar rotinas de exportação de Tabelas.
Tenho uma Unit (UniLibGeral), que contém as minha rotinas de exportação como segue :
procedure ExportaExcel(ACliDataSet : TDataSet; ATitulo, AFileName : String);
procedure ExportaWord (ACliDataSet : TDataSet; ATitulo, AFileName : String);
procedure ExportaHTML (ACliDataSet : TDataSet; ATitulo, AFileName : String);
procedure ExportaTXT (ACliDataSet : TDataSet; ATitulo, AFileName : String);
as Rotinas de exportação para Word e Excel são lentas, por isto gostaria de colocá-las em uma Thread.
Criei uma Thread (ThPrin), mas surgiu a dúvida na hora de passar os parâmetros, veja :
procedure thPrin.Execute;
begin
{ Place thread code here }
ExportaExcel(); <-----------------Como pegar estes parâmetros que vem do Form que chama o Relatório?
end;
Posso alterar o constructor do Execute para aceitar parâmetros? Como Fazê-lo?
Grato,
Moliva
Moliva
Curtidas 0
Respostas
Comodelphi
15/04/2004
na definicao do seu objeto thread adicione os atributos que vc necessita para passar como parametro:
type Minhathread(TThread)
Parametro1
.
.
Parametronnn
E redefina o métod create da trhread passando os valores para os atributos correspondentes da sua thread:
constructor Create(Parametro1....Parametronnnn);override;
não esqueça de usar o inherited na implementaçao, ai sua chamada a Trhead vai ficar
MinhaThread.Create(<Seus parametros>)
abcs....
type Minhathread(TThread)
Parametro1
.
.
Parametronnn
E redefina o métod create da trhread passando os valores para os atributos correspondentes da sua thread:
constructor Create(Parametro1....Parametronnnn);override;
não esqueça de usar o inherited na implementaçao, ai sua chamada a Trhead vai ficar
MinhaThread.Create(<Seus parametros>)
abcs....
GOSTEI 0