Erro criação de Form

Delphi

29/06/2004

Bom Dia a Todos


Estou com uma dificuldade na criação de Forms em tempo de execução que talvez alguém possa me ajudar:

Em um form crio uma instância de um DataModule como está abaixo :
if dmdGeraPedido = nil then
dmdGeraPedido := TdmdPedido.Create(Self);


Mesmo sem fechar Destruir o DataModule anterior crio outra instância a partir de outro form :
if dmdApagaPedido = nil then
dmdApagaPedido := TdmdPedido.Create(Self);


Tudo funciona perfeitamente, na primeira e na segunda instância é executado o OnCreate do DataModule e não há nenhum tipo de conflito entre eles.


Agora o Problema :

Tentei usar o mesmo conceito para criar dois forms e não consegui :

Na Unit com o Menu Principal coloquei :

procedure TfrmPrincipal.mnuDistCadastroClick(Sender: TObject);
begin
if frmDistribuidora = nil then
begin
StrTipoEmp := ´D´;
frmDistribuidora := TfrmEmpresa.Create(Self);
end;
end;


Até aqui funciona, ele cria o form e executa o OnCreate e o OnShow;

Porém se, sem destruir o Form anterior, eu chamar um novo form, como abaixo :

procedure TfrmPrincipal.mnuTransCadastroClick(Sender: TObject);
begin
if frmTransportadora = nil then
begin
StrTipoEmp := ´T´;
frmTransportadora := TfrmEmpresa.Create(Self);
end;
end;


Ocorre um ´Access Violation´. Ao debugar o prg percebi que ele não executa o OnCreate e o OnShow desta nova instância.


Qual a diferença entre os dois exemplos (criação do DataModule e do Form) ?

Porque ao criar a segunda instância de um form ele não executa o OnCreate?


Grato,
Moliva


Moliva

Moliva

Curtidas 0
POSTAR