Fechar Form Delphi

13/02/2019

0

Bom dia!!
Parece uma pergunta boba, mas sou iniciante em delphi, e passei a tarde toda tentando fechar um formulario em um projeto.
Acontece o seguinte, tenho o FormPrincipal, nele eu chamo um form secundario, (form2), utilizando o seguinte código
 var Form2: TFrm2;
begin
Form2:=TFrm2.create(self);
Form2.showmodal;


Bem, feito isso, depois o usuario vai acessar um outro form, vamos chamar de form3, no qual é utilizando a mesma sintaxe, contudo, não consigo fechar esse form3 e abrir o form2.
Tente utilizar o close, hide, release, todos sem sucesso, o erro que dá é sempre Access Violation.
Pode ser falta de experiencia, ou algo do tipo mas a minha pergunta é a seguinte.
Como eu faço para fechar o form3 e abrir o form2? Se puderem me explicar, mostrando o código e se possivel, explicando o código ficarei grato!!
Obrigado pela atenção!!!
Giovani Mendes

Giovani Mendes

Responder

Posts

13/02/2019

Natanael Ferreira

Seus Forms Form2 e Form3 estão como Available Forms ou AutoCreate Forms? Sugiro que coloque como Available Forms para economia de memória.

Veja este link para melhor entendimento:
https://sodelphi.wordpress.com/2009/10/28/autocreate-forms-x-available-forms/

Feito isso, vamos ao código:

Criar Form2:
Form2 := TForm2.Create(Self);
Form2.ShowModal;


Criar Form3:
Form3 := TForm3.Create(Self);
Form3.ShowModal;


No evento OnClose de cada form use o código abaixo para liberação de memória:
Action := caFree;
Responder

13/02/2019

Daniel Araújo

Se o form FormStyle do formulário for do tipo fsNormal, só o close já era para resolver. Se for do tipo fsMDIChild, precisa tirar da memória com o Action := caFree
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar