Form MDI

Delphi

30/03/2007

Gente quando vou abrir um formulario mdi child aparece a seguinte expressão cannot create form. no mdi forms currently active. Os formularios estao definidos corretamente como mdiform e mdichild. Tudo começou quando coloquei um novo formulario de login que é fsnormal ele chama o formulario pai na boa mas o pai nao consegue chamar os filhos dando essa mensagem.
Quando vou chamar os filhos estou fazendo assim:

if frmFornecedor = nil then
begin
Application.CreateForm(tfrmfornecedor,frmFornecedor);
frmFornecedor.Show;
end
else
frmFornecedor.Show;

Desde ja agradeço


Prilady

Prilady

Curtidas 0

Respostas

Dmenin

Dmenin

30/03/2007

provavelemnte vc esta tentando criar o form login (filho) antes de criar o form pai


GOSTEI 0
Massuda

Massuda

30/03/2007

Para poder usar forms com estilo fsMdiChild é preciso que seu form principal (normalmente o primeiro que seu programa cria) tenha estilo fsMdiForm.


GOSTEI 0
Prilady

Prilady

30/03/2007

mas o pai esta criado ele é mdiform


GOSTEI 0
Massuda

Massuda

30/03/2007

Como o colega dmenin escreveu, a ordem de criação faz diferença. Você usa Application.CreateForm para criar o form de login? Se for o caso, crie o form de login usando algo assim...
SeuFormDeLogin = TSeuFormDeLogin.Create(nil);
...mostra o form...
SeuFormDeLogin.Free;
...resto do programa...



GOSTEI 0
Dmenin

Dmenin

30/03/2007

sera q o form de login, como é o primeiro a ser aberto, n passou de alguma amneira a ser o form pai..e como vc fecha ele...nao tem + form pai ativo


GOSTEI 0
Prilady

Prilady

30/03/2007

Infelizmente o erro continua


GOSTEI 0
Prilady

Prilady

30/03/2007

Gente resolvi coloquei no inicio do programa application.showmainform:=false, assim o formulario principal é criado primeiro que todos mas fica escondido ate eu chamar ele. No evendo on show do formulario principal coloco para chamar o formulario de login que por sua vez habiliata o principal e da um onshow, obrigada a todos!!! :lol: :


Application.Initialize;
Application.CreateForm(TfrmDataModule, frmDataModule);
Application.CreateForm(TfrmMenu, frmMenu);
[b:cd1f281b28]Application.ShowMainForm:=false;[/b:cd1f281b28]
Application.CreateForm(TfrmLogin, frmLogin);
Application.Run;


GOSTEI 0
POSTAR