Fórum Chamada de Form em BPL por Show e não ShowModal #446740
26/06/2013
0
que todos que fazem os exemplos fazendo chamadas ShowModal. Então tenho essa situação no form dentro da BPL
procedure Exec_form_SModal(const NomeConex: TSQLConnection); StdCall;
Exports Exec_form_SModal;
em seguida faço a declaração do procedimento
procedure Exec_form_SModal(const NomeConex: TSQLConnection); StdCall;
begin
Application.CreateForm(Tfr_CadP, fr_CadP);
fr_CadP.ConexaoSQL := NomeConex;
fr_CadP.ShowModal;
fr_CadP.Free;
end;
No lado da aplicação, eu tenho a seguinte situação ao chamar o form
procedure Tf_Principal.ac_CadPacExecute(Sender: TObject);
type
TExecModule = procedure(const NomeConex: TSQLConnection); stdCall;
var
myHandle : THandle;
ExecMo : TExecModule;
begin
myHandle := LoadLibrary('C_CadP.bpl');
if myHandle > 0 then
begin
@ExecMo := GetProcAddress(myHandle,'Exec_form_SModal');
ExecMo(dmConex.Conexao);
FreeLibrary(myHandle);
end;
end;
Vejam que passo um parâmetro que é a conexão de banco de dados. No ShowModal funciona belamente. Porém, como poderia fazer a mesma coisa só que chamando o form com Show. Se substituo por Show no form da BPL ele é fechado automaticamente. Tenho que fazer alguma configuração extra? Alguém poderia me dar uma luz?
Obrigado desde já.
Dalton Corbetta
Curtir tópico
+ 0Posts
26/06/2013
Francisco Macário
Você está alterando nesse ponto?
procedure Exec_form_SModal(const NomeConex: TSQLConnection); StdCall; begin Application.CreateForm(Tfr_CadP, fr_CadP); fr_CadP.ConexaoSQL := NomeConex; fr_CadP.Show;//fr_CadP.ShowModal; fr_CadP.Free; end;
Se for, você precisa mudar a forma de liberação do form (fr_CadP.Free) para um outro evento.
At.
Gostei + 0
26/06/2013
Dalton Corbetta
O problema é que agora o sistema me exige uma conexão definida por um parâmetro que coloquei na inicialização.
um evento usa LoadPackage e o outro usa loadlibrary.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)