Fórum Carregar pacote (form) dinamicamente #357568
24/04/2008
0
Olá pessoal,
Seguindo umas video aulas da CD eu estou dividindo meu novo sistema em módulos para modularizar ele.
Tenho um pacote com 1 formulário e criei a chamada lá:
Compila o pacote na boa.
No meu programa principal (em um evento CLICK de um botão):
Vejam que se eu colocar o nome do pacote errado ele acusa o erro (MÓDULO NÃO ENCONTRADO).
Ele executa corretamente até a linha que tem o GetProcAddress mas quando chama mesmo o
ExecutaModulo;
Ele acusa o erro:
Access violation at address 00CACCB7 in modulo ´vcl70.bpl´. Read address 00000000000.
Alguém poderia me ajudar????? Valeu!
Seguindo umas video aulas da CD eu estou dividindo meu novo sistema em módulos para modularizar ele.
Tenho um pacote com 1 formulário e criei a chamada lá:
type
TfrmLogin = class(TfrmPadrao)
Label1: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
// Para chamada externa
// ********************************
procedure ExecutaModulo; stdcall;
exports ExecutaModulo;
// ********************************
implementation
{$R *.dfm}
procedure ExecutaModulo; stdcall;
var
Frm: TfrmLogin;
begin
Frm := TfrmLogin.Create(Application);
try
Frm.ShowModal;
finally
Frm.Release;
FreeAndNil(Frm);
end;
end;
end.
Compila o pacote na boa.
No meu programa principal (em um evento CLICK de um botão):
type TExecutaModulo = procedure; stdcall; var loHandle: THandle; ExecutaModulo: TExecutaModulo; begin loHandle := LoadLibrary(´PacoteTeste.bpl´); if loHandle > 0 then begin @ExecutaModulo := GetProcAddress(lohandle, ´ExecutaModulo´); ExecutaModulo; FreeLibrary(loHandle); end else Showmessage(´modulo não encontrado´); end;
Vejam que se eu colocar o nome do pacote errado ele acusa o erro (MÓDULO NÃO ENCONTRADO).
Ele executa corretamente até a linha que tem o GetProcAddress mas quando chama mesmo o
ExecutaModulo;
Ele acusa o erro:
Access violation at address 00CACCB7 in modulo ´vcl70.bpl´. Read address 00000000000.
Alguém poderia me ajudar????? Valeu!
Romulocpd
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)