Vou criar um exemplo para ficar mais claro, Quero criar um programa onde vai ter uma janela pai e uma filho (para quem não sabe oque é isto, é uma janela dentro da outra, tipo no Bloco de notas ou Photoshop. Veja a imagem abaixo).
Para isto coloco no Form1 a propriedade "FormStyle" com o valor "fsMDIForm" é no form2 com o valor "fsMDIChild".
Até aqui o programa funciona perfeitamente, mas agora quero adicionar ao projeto uma tela de login ou uma tela de splash, então crio um novo form e coloco ele como Main Form (Formulário principal que será exibido primeiro).
Mas quando vou compilar aparece o erro "First chance exception at $75969673. Exception class EInvalidOperation with message 'Cannot create form. No MDI forms are currently active'. Process Project1.exe (7832)".
Agora vou ensinar como solucionar este problema.
1º- Vá em Project>Options no Combobox Main Form coloque o formulário Pai, no meu caso o Form1.
3º- Agora no form3 (login) em "private" digite: fecha : boolean;
4º- Também no form3 mas agora no evento "OnCreate" digite: Fecha := false;
5º- Novamente no Form3 no evento "onCloseQuery" digite: CanClose := Fecha;
6º- Ainda no Form3 no evento "OnClose" digite: Action := caFree;
7º- Crie um botão para login e após o código de login digite:
fecha := True;
Form3.Close;
8º- Será necessário criar um botão para fechar este form, adicione um Button e digite:
Fecha := True;
form1.Close;
9º- Agora vá em Project>ViewSource e digite:
Application.CreateForm(Tform3, form3);
Form3.ShowModal;
Form3.FormStyle := fsStayOnTop;
Pronto agora e só compilar que seu programa estará funcionando perfeitamente!
Nenhum comentário:
Postar um comentário