function GetJanela(ANomJanela: PChar; Appli: Pointer): TpJanelaPBase; stdcall;
var
n: String;
begin
Application := TApplication(Appli);
n := ANomJanela;
if n = 'FCadastroMaterial' then
Result := TFCadastroMaterial.Create(nil)
else if n = 'FCadastroSimples' then
Result := TFCadastroSimples.Create(nil)
else
Result := nil;
end;
Então resumidamente, como fazer para uma DLL retornar um
form que eu possa manipular em uma MDI, e possa também
abrir várias instâncias deste form ? A minha idéia é
preservar a característica de meu sistema atual, onde
meu form MDI se comunica com o form (de uma DLL
dinamicamente carregada) através de uma interface ou de
uma classe ancestral básica.
Atualmente minhas janelas que estão retornando pela DLL
utilizam interfaces em suas declaração, no meu form MDI
eu as utilizava e também ocorria as excessões ao tentar
abrir nova instâncias, ou ao fechar e abrir novamente a
Pergunta
Arthavus
Saudações pessoal,
Estou atualmente convertendo um de meus sistemas que
carregava forms de pacotes delphi dinamicamente, uma
interface era usada para carregar a janela de forma
que o meu form MDI nunca se preoculpava com o form
dinamicamente carregado.
Agora estou portando o uso de pacotes delphi para
DLLS, e estou tendo o problema de excessões quando tento
abrir mais de uma instância de uma janela, ou quando
fecho o form e o abro novamente.
Na minha MDI para um item de menu tem a seguinte chamada:
... E em minha DLL tem o seguinte:Então resumidamente, como fazer para uma DLL retornar um
form que eu possa manipular em uma MDI, e possa também
abrir várias instâncias deste form ? A minha idéia é
preservar a característica de meu sistema atual, onde
meu form MDI se comunica com o form (de uma DLL
dinamicamente carregada) através de uma interface ou de
uma classe ancestral básica.
Atualmente minhas janelas que estão retornando pela DLL
utilizam interfaces em suas declaração, no meu form MDI
eu as utilizava e também ocorria as excessões ao tentar
abrir nova instâncias, ou ao fechar e abrir novamente a
jenala. Alguém saberia oque pode ser feito ?
Desde já, obrigado pela atenção.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.