Ir para conteúdo
Fórum Script Brasil
  • 0

Mto Importante Ajudem (RESOLVIDO)


DSV

Pergunta

POR FAVOR EU ESTOU COM UM PROBLEMA EM DELPHI, quando EU TENTO CRIAR UM FORM ATRAVES DE UM LOGIN ELE APARECE SEMPRE A mesmo MENSAGEM DE ERRO!!!

"Project Project1.exe raised exception class EInvalidOperation with message 'Cannot create form. No MDI are currently active'. Process stopped. Use Step or Run to continue"

Esse foi o código foi posto no Delphi para programar o botao.

procedure TLogon.Button1Click(Sender: TObject);

begin

if edit1.text = '***' then

begin

Application.CreateForm(TPrincipal, Principal);

principal.Exibir1.Enabled := false;

principal.Cadastrar1.Enabled := false;

principal.show;

end

else

if edit1.text = '***' then

begin

Application.CreateForm(TPrincipal, Principal);

principal.formstyle:=fsmdiform;

principal.show;

end

else

showmessage('Senha Incorreta!!!!');

end;

end.

Por favor se souberem me responder ajudem me!!!!

OBRIGADO

Link para o comentário
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

  • 0
Guest Jean(DLJ) "Final project&qu

blink.gif Ô MLK EU PERGUNTEI ESSA mesmo PERGUNTA AO DONO DA "i quest" ELE VAI ME RESPONDER ASSIM Q PUDER VLW QUALQUER COISA JEAN_SOUL@HOTMAIL.COM VLW!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

FINAL PROJECT "DLJ" NA VEIA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ph34r.gif

Link para o comentário
Compartilhar em outros sites

  • 0
Não tenho certeza, mas se você estiver usando MDI e tiver configurado o formulário com nome "principal" como o pai, você deve chamá-lo diretamente, sem usar o "application.CreateForm(...)".

n precisa usar???

eu to usando e to colocando o application..createform...

precisa ou n ce n precisa me avisa q vou testar e c der certu muito obrigadooooooooooooooo!!!!!!!!

Link para o comentário
Compartilhar em outros sites

  • 0
Não tenho certeza, mas se você estiver usando MDI e tiver configurado o formulário com nome "principal" como o pai, você deve chamá-lo diretamente, sem usar o "application.CreateForm(...)".

essa seu palpite não funcionou, tente outra vez!!!

POR FAVOR ME AJUDEEEEEEEEEEM!!!!!!!!!!!!!!!

Link para o comentário
Compartilhar em outros sites

  • 0
Olá,

Voce já tentou mudar a opção FormStyle do seu form? esse erro acontece quando essa opção esta assim: fsMDIChild.

Abs. Progr'amador.

mas o que eu faço pra definir os outros forms filhos???

EU PRECISO Q OS FORMS ABRAM JUNTO A TELA DO PAI, OU SEJA, Q ELES SEJAM FILHO!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Tente o seguinte:

Deixe no "Project>Options" o form "pai" para ser o "principal" e o form de login coloque na coluna "Avaliable forms", aí no código do projeto mande criar o form de login antes da linha que manda criar o "pai" e também colque esse form de login como "stay on top" , e trave as teclas para que esse form de login não feche...no botão que executa o login (se houver) ao invés de chamar o principal, mande destruir o de login...

Acredito que essa não é a solução ideal, mas, pelo menos, é uma forma de "driblar" o problema...aqui funcionou...espero que ajude.

Link para o comentário
Compartilhar em outros sites

  • 0
Tente o seguinte:

Deixe no "Project>Options" o form "pai" para ser o "principal" e o form de login coloque na coluna "Avaliable forms", aí no código do projeto mande criar o form de login antes da linha que manda criar o "pai" e também colque esse form de login como "stay on top" , e trave as teclas para que esse form de login não feche...no botão que executa o login (se houver) ao invés de chamar o principal, mande destruir o de login...

Acredito que essa não é a solução ideal, mas, pelo menos, é uma forma de "driblar" o problema...aqui funcionou...espero que ajude.

é isso mesmo q eu quero fazer, mas eu sou apenas aluno do 3° ano de info. não sei fazer isso ainda me ensine a fazer, poste o código ai para mim por favor...

GRATO!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Olá!

1) Em "Project>Options" no combo "Main Form" deixe como sendo o form principal, e na propriedade "FormStyle" desse form deixe "fsMDIForm", e , também no Options passe o Form de login (vou chamá-lo de frm_login) para a coluna da direita (Avaliable Forms) e deixe a propriedade "FormStyle" como "fsNormal".

2) Agora no frm_login:

2.1) Travar as teclas: declare em "private" a variável "fecha"

...
 private
      fecha : boolean; //DECLARAÇÃO DA VARIÁVEL FECHA    
    { Private declarations }
...
Aí, no evento "OnCreate" digite
Fecha := false;
E finalmente no evento "OnCloseQuery"
 CanClose := Fecha; 
2.2) Será nescessário colocar um botão para fechar esse form, no botão adicione o código seguinte:
 Fecha := True;
                                       frm_principal.Close;//Isso vai terminar o programa
                          
3) Agora vá em "Project>ViewSource" e digite o código seguinte
...
  Application.Initialize;
  Application.CreateForm(Tfrm_principal, frm_principal); //Seu form principal

 //CRIAÇÃO DO frm_login 
  Application.CreateForm(Tfrm_login, frm_login);
  Form2.WindowState := wsMaximized;
  Form2.ShowModal;
  Form2.FormStyle := fsStayOnTop;
// FIM
   ...
  Application.Run;
4) Voltando no frm_login: No botão que vai confirmar o login inclua
  fecha := True;
  Form2.Close;
, e no evento "OnClose" adicione
Action := caFree;

OBS.: Esse código utilizado para travar as teclas trava "Alt+F4" e o botão de fechar do sistema (X), então é interessante retirá-lo do form (o botão).

Espero que tenha ajudado smile.gif ...avise se der certo ou não.

Link para o comentário
Compartilhar em outros sites

  • 0
Olá!

1) Em "Project>Options" no combo "Main Form" deixe como sendo o form principal, e na propriedade "FormStyle" desse form deixe "fsMDIForm", e , também no Options passe o Form de login (vou chamá-lo de frm_login) para a coluna da direita (Avaliable Forms) e deixe a propriedade "FormStyle" como "fsNormal".

2) Agora no frm_login:

2.1) Travar as teclas: declare em "private" a variável "fecha"

...
 private
      fecha : boolean; //DECLARAÇÃO DA VARIÁVEL FECHA    
    { Private declarations }
...
Aí, no evento "OnCreate" digite
Fecha := false;
E finalmente no evento "OnCloseQuery"
 CanClose := Fecha; 
2.2) Será nescessário colocar um botão para fechar esse form, no botão adicione o código seguinte:
 Fecha := True;
                                       frm_principal.Close;//Isso vai terminar o programa
                          
3) Agora vá em "Project>ViewSource" e digite o código seguinte
...
  Application.Initialize;
  Application.CreateForm(Tfrm_principal, frm_principal); //Seu form principal

 //CRIAÇÃO DO frm_login 
  Application.CreateForm(Tfrm_login, frm_login);
  Form2.WindowState := wsMaximized;
  Form2.ShowModal;
  Form2.FormStyle := fsStayOnTop;
// FIM
   ...
  Application.Run;
4) Voltando no frm_login: No botão que vai confirmar o login inclua
  fecha := True;
  Form2.Close;
, e no evento "OnClose" adicione
Action := caFree;

OBS.: Esse código utilizado para travar as teclas trava "Alt+F4" e o botão de fechar do sistema (X), então é interessante retirá-lo do form (o botão).

Espero que tenha ajudado smile.gif ...avise se der certo ou não.

VLW!!!

já CONSEGUI

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...