MDIForm e MDIChild
Boa tarde,
Alguém sabe como corrigir o problema quando aparece a mensagem:
´cannot create form. no MDI forms are currently active´.
Na aplicação, o form principal esta definido como fsMDIForm, os demais estão definidos como fsMDIChild e no menu Project/Options o MainForm é o form principal.
Ao chamar os demais formulários utilizando a sintaxe abaixo
Execute( TfrmORC1110F , frmORC1110F );
É executada a procedure abaixo que está definida no formulário principal:
Procedure TfrmORC0000M.Execute(InstanceClass: TComponentClass; var Reference);
Var
iI: Integer;
formula : string;
Begin
// *** Verifica se ha instancia do form
For iI := 0 To MDIChildCount - 1 Do
Begin
If MDIChildren[iI].ClassName = InstanceClass.ClassName Then
Begin
MDIChildren[iI].WindowState := wsNormal;
MDIChildren[iI].Show;
Exit;
End;
End;
Application.CreateForm( InstanceClass, Reference );
End;
As telas Splash e de login estão funcionando corretamente.
Se alguém tiver alguma idéia desde já agradeço.
Airton
Alguém sabe como corrigir o problema quando aparece a mensagem:
´cannot create form. no MDI forms are currently active´.
Na aplicação, o form principal esta definido como fsMDIForm, os demais estão definidos como fsMDIChild e no menu Project/Options o MainForm é o form principal.
Ao chamar os demais formulários utilizando a sintaxe abaixo
Execute( TfrmORC1110F , frmORC1110F );
É executada a procedure abaixo que está definida no formulário principal:
Procedure TfrmORC0000M.Execute(InstanceClass: TComponentClass; var Reference);
Var
iI: Integer;
formula : string;
Begin
// *** Verifica se ha instancia do form
For iI := 0 To MDIChildCount - 1 Do
Begin
If MDIChildren[iI].ClassName = InstanceClass.ClassName Then
Begin
MDIChildren[iI].WindowState := wsNormal;
MDIChildren[iI].Show;
Exit;
End;
End;
Application.CreateForm( InstanceClass, Reference );
End;
As telas Splash e de login estão funcionando corretamente.
Se alguém tiver alguma idéia desde já agradeço.
Airton
Airoosp
Curtidas 0
Respostas
Massuda
29/09/2005
As telas Splash e de login estão funcionando corretamente.
Talvez seja isso: apesar de você ter configurado o MainForm como sendo o form principal, a VCL considera como sendo o form principal o [b:de5bc583cc]primeiro[/b:de5bc583cc] form criado usando Application.CreateForm; talvez você esteja criando o form de splash ou o de login usando Application.CreateForm.GOSTEI 0
Airoosp
29/09/2005
No source do projeto a criação dos forms é feita assim:
Application.Initialize;
SplashForm := TSplashForm.Create(Application);
SplashForm.ShowModal;
SplashForm.Update;
Application.CreateForm(TDataModule1, DataModule1);
Application.CreateForm(TfrmORC0000M, frmORC0000M);
SplashForm.Hide;
SplashForm.Free;
Application.Run;
Application.Terminate;
Poderá ser algum parâmetro que não foi alterado corretamente?
Application.Initialize;
SplashForm := TSplashForm.Create(Application);
SplashForm.ShowModal;
SplashForm.Update;
Application.CreateForm(TDataModule1, DataModule1);
Application.CreateForm(TfrmORC0000M, frmORC0000M);
SplashForm.Hide;
SplashForm.Free;
Application.Run;
Application.Terminate;
Poderá ser algum parâmetro que não foi alterado corretamente?
GOSTEI 0
Massuda
29/09/2005
Eu normalmente faria assim...
... SplashForm := TSplashForm.Create(nil); SplashForm.Show; ...
Application.CreateForm(TfrmORC0000M, frmORC0000M);
Esse TfrmORC0000M é o seu form principal (com estilo fsMDIForm)?GOSTEI 0
Airoosp
29/09/2005
Isso mesmo o TFrm0000M é o form principal com estilo fsMDI Form.
O sistema funciona até a montagem do menu principal, ao clicar no menu e chamar um outro form que é feito conforme sintaxe abaixo aparece a mensagem de erro.
procedure TfrmORC0000M.Sistema1Click(Sender: TObject);
begin
Execute( TfrmORC1000F , frmORC1000F );
end;
Erro: ´cannot create form. no MDI forms are currently active´.
O sistema funciona até a montagem do menu principal, ao clicar no menu e chamar um outro form que é feito conforme sintaxe abaixo aparece a mensagem de erro.
procedure TfrmORC0000M.Sistema1Click(Sender: TObject);
begin
Execute( TfrmORC1000F , frmORC1000F );
end;
Erro: ´cannot create form. no MDI forms are currently active´.
GOSTEI 0