Como usar uma função q está dentro de um módulo .bpl?

Delphi

27/11/2003

Galera em um módulo .bpl q criei, existe um form q possui uma função declarada na seção public chamada Mostra(PSqlconexao:TSqlconnection);

A questão é a seguinte na hora q eu chamar o formulário q está dentro do módulo, ao invés de chamá-lo pelo Show ou Showmodal, eu preciso passar o parâmetro Psqlconexao, para poder ligar os componentes de acesso à dados contidos neste form. Como posso fazer isto?

Obrigado


Aledeol

Aledeol

Curtidas 0

Respostas

Aledeol

Aledeol

27/11/2003

Estou carregando o módulo dinamicamente desta maneira:

try
FFormrel.Show;
except
try
FrelModuleHandle := LoadPackage(C_DPKRELAT);
customformclass := TCustomFormClass(FindClass(C_CLASSERELAT));
FFormREL := customformclass.Create(self);
// usaria esta funcao aqui
FFormREL.Mostra(dm.conexao,´´);
// no lugar de show ou showmodal
except
on EPackageError do
begin
MessageDlg(´Package ´ + C_DPKRELAT + ´ não foi encontrado!´ + #1310 +
´Funcionalidade não disponível´, mtError, [mbOk],0);
end;
on e:exception do
begin
MessageDlg(´Não foi possível abrir o cadastro!´ + 1310 +
´Erro: (´+e.ClassName+´) ´ + e.Message,mtError,[mbok],0);
end;
end;
end;


GOSTEI 0
Beppe

Beppe

27/11/2003

O Delphi usa name mangling nas .bpl´s, então você não carrega elas dinâmicamente, pois é difícil obter o endereço das funções.

Você faz assim:
1) Acrescente o diretório onde se encontra a .dcp correspondente na Library Path em Environment Options;
2) Nas opções do projeto acrescente sua .bpl em compile with packages;
3) Na unit em que você quer usar o form, adicione a unit que o contém ao uses.
4) Então chame a procedure como se ela esivesse numa unit do seu projeto mesmo.


GOSTEI 0
POSTAR