Fechar e abrir um form com o mesmo botão
Boa noite!
A duvida é a seguinte: estou no Form1 e clico no botão ai abre o Form2, se eu clicar no botão do Form1 de novo eu quero que o Form2 seja fechado.
Tentei com variaveis booleanas, mas sempre acaba em um loop infinito, o form sempre ficava aberto(pelo fato de ser o mesmo botão que fecha e abre, então sempre deixava a variavel true).
Código para exemplo
Form2 form2 = new Form2();
bool i = true;
if(i == true)
{
form2.Show();
i = false;
}
else
{
form2.Close();
i = true;
}
Alguem poderia me ajudar? agradeço desde já :)
A duvida é a seguinte: estou no Form1 e clico no botão ai abre o Form2, se eu clicar no botão do Form1 de novo eu quero que o Form2 seja fechado.
Tentei com variaveis booleanas, mas sempre acaba em um loop infinito, o form sempre ficava aberto(pelo fato de ser o mesmo botão que fecha e abre, então sempre deixava a variavel true).
Código para exemplo
Form2 form2 = new Form2();
bool i = true;
if(i == true)
{
form2.Show();
i = false;
}
else
{
form2.Close();
i = true;
}
Alguem poderia me ajudar? agradeço desde já :)
Guilherme
Curtidas 0
Melhor post
Alberto
09/02/2017
Faça assim:
procedure TForm1.Button1Click(Sender: TObject);
begin
// se o form não estiver criado entao cria
if NOT Assigned(Form2) then
Form2 := TForm2.Create(Application);
// Se estiver visivel fecha, senao mostra
if Form2.Visible then
Form2.Close
Else
Form2.Show;
end;
GOSTEI 1
Mais Respostas
Estevão Dias
07/02/2017
Olá Guilherme, tudo bem?
Apesar do seu código omitir esse detalhe, esse código está inserido no evento de clique do botão, certo?
Apesar do seu código omitir esse detalhe, esse código está inserido no evento de clique do botão, certo?
GOSTEI 0
Guilherme
07/02/2017
Claro.. eu coloquei a variavel bool fora do botão para não ficar resetando, mas agora nao fechar o form.
Exemplo:
1º click abre o form
2º click não faz nada (era pra fechar)
3º click abre outro form
fica assim, abrindo forms e mais forms, mas não fecha nenhum
Exemplo:
1º click abre o form
2º click não faz nada (era pra fechar)
3º click abre outro form
fica assim, abrindo forms e mais forms, mas não fecha nenhum
GOSTEI 0