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

[resolvido] Fechar Um Form


juniorboll

Pergunta

To com o seguinte problema fiz um form de senha para depois entrar no outro form2, so que eu to querendo que quando conseguir entrar no form2 o form da senha feche, e que não precise voltar nele para fechar o programa, ate consegui fechar ele so que ai quando eu fecho o form2 ele não fecha o programa, parece que fica aberto mas sem aparecer nada...

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0
Guest --Jonas --
To com o seguinte problema fiz um form de senha para depois entrar no outro form2, so que eu to querendo que quando conseguir entrar no form2 o form da senha feche, e que não precise voltar nele para fechar o programa, ate consegui fechar ele so que ai quando eu fecho o form2 ele não fecha o programa, parece que fica aberto mas sem aparecer nada...

Solução bem simples.... se voce usa um menu, no botao ou clausula sair voce coloca

Form2.Close; // form de menu ou outro

Form1.Close; // form de senha

Obs: voce sempre deve fechar do ultimo para o primeiro form se não o programa fica aberto.

Link para o comentário
Compartilhar em outros sites

  • 0
To com o seguinte problema fiz um form de senha para depois entrar no outro form2, so que eu to querendo que quando conseguir entrar no form2 o form da senha feche, e que não precise voltar nele para fechar o programa(...)

a solução mais complicada...

O exemplo é um projeto com apenas duas telas (Login e Principal). O código fonte do projeto (em que os forms estão criados em design-time) está assim (para ver o código do projeto, menu View->Project Source):

program Project1;
uses
  Forms,
  Unit1 in 'Unit1.pas' {Login},
  Unit2 in 'Unit2.pas' {Principal};

{$R *.RES}

begin
  Application.Initialize;
  Application.CreateForm(TLogin, Login);
  Application.CreateForm(TPrincipal, Principal);
  Application.Run;
end.
e deve ser alterado para:
program Project1;
uses
  Forms,
  controls,  // *** para usar a constante mrOK
  Unit1 in 'Unit1.pas' {Login},
  Unit2 in 'Unit2.pas' {Principal};

{$R *.RES}
var
  StartMainForm :Boolean;  // *** para viabilizar a validação

begin
  Application.Initialize;
 // *** criaremos a tela login sem Owner (nil) - isto evita que ela
 // seja assumida como o MainForm da aplicação (Application)
  Login := TLogin.Create(nil);
  try
   // *** se o login for válido, o retorno será mrOk e StartMainForm se tornará TRUE
    StartMainForm := Login.ShowModal = mrOk;
  finally
    Login.Release; // *** após utilizada, a tela de login é eliminada da memória
  end;

  if StartMainForm then  // *** se a senha era válida inicia a aplicação normalmente
  begin
    Application.CreateForm(TPrincipal, Principal);
    Application.Run;
  end else  // *** do contrário, terminamos a aplicação
    Application.Terminate;
end.
Só falta agora, ajustar a tela de login para retornar mrOk para a senha válida. Eu utilizo este form com a propriedade BorderStyle = bsDialog, e com dois botões: - um de confirmação, com a propriedade ModalResult = mrNone (com isto, nada acontece ao pressionarmos ele. Teremos que escrever o evento OnClick); - outro de cancelamento, com a propriedade ModalResult = mrCancel (com isto, ao ser pressionado, a janela será fechada sem que seja necessário colocar qualquer código no evento OnClick dele - como Close, p.ex.); no evento OnClick do botão de confirmação temos o seguinte código:
procedure TLogin.Button1Click(Sender: TObject);
begin
  if MaskEdit1.Text = 'senha' then
    ModalResult := mrOk
  else
    ShowMessage('A senha digitada não confere!');
end;

É complicado apenas explicando, na prática é bem simples.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
vlw, so mais uma, como eu faço que o form2 apareça antes do form1 sendo que eu não quero colocar o form2 como main form, pois se eu coloca-lo e eu quizer fechar ele, fechara o programa todo...
juniorboll, quem é form1 e quem é form2.

Inicialmente parecia que o form2 seria o seu form principal. Agora, já não parece. :huh:

O que você realmente quer:

a- Mostrar o seu form principal, e antes que alguma coisa possa ser feita nele, seja apresentada a tela de login;

b- Mostrar a tela de login, e após validada, fechá-la e mostrar o form principal; (opção que postei)

Churc, acho que suas pastas no 4share não foram acessadas nos 30 dias requeridos... (os arquivos foram removidos)

Link para o comentário
Compartilhar em outros sites

  • 0

Sim era para ser o form2 meu principal so que eu não estava conseguindo fazer o form1 que no caso é o da senha entrar primeiro que o form2 sem que ele seja o principal, desculpe pela confusão...

eu to querendo a opção b mostrar minha tela de login e depois se conseguir entrar fechar ela e abrir o form2 que é o do programa mesmo...

Editado por juniorboll
Link para o comentário
Compartilhar em outros sites

  • 0
Churc, acho que suas pastas no 4share não foram acessadas nos 30 dias requeridos... (os arquivos foram removidos)

puts... deletaram mesmo ;\

nunca mais coloco arquivos lá também auhahuahu

então eu tinha feito um exemplo parecido porém mais simples pro Ranilson uma vez

da uma olhada:

http://www.sunsetsolutions.com.br/ranilson/

abraçox

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...