Form Fecha e depois não abri mais (FireMonkey)
Bom dia pessoal. Estou desenvolvendo um projeto em Delphi no Firemonkey.
Tenho um Form1 Principal e dentro desse Form1 eu coloquei :
1 ToolBar
1 Layout. O Layout eu renomeei para LayoutPrincipal.
1 Botao
Tenho outro formulario e nesse outro Form2 eu coloquei:
1 Layout e renomeei ele para Layout_Principal.
1 Botao (para fechar o Form2)
O que estou querendo fazer é o seguinte. Ao clicar no botao do Form1 ele pegar as informações contidas no Form2 (Layout_Principal) e jogar dentro do Form1 ( LayoutPrincipal). A principio o código esta fazendo o procedimento direito. O problema esta quando eu fecho o Form2, se eu quiser abir ele de novo o mesmo nao abri. Abaixo vou colocar os códigos que estou usando em cada form.
Form1:
Form2: (quando fecho o form)
Acima os códigos. Quando fecho o Form2, é como se ele não tirasse o Form2 da memoria. O que podemos fazer para o código funcionar?
Tenho um Form1 Principal e dentro desse Form1 eu coloquei :
1 ToolBar
1 Layout. O Layout eu renomeei para LayoutPrincipal.
1 Botao
Tenho outro formulario e nesse outro Form2 eu coloquei:
1 Layout e renomeei ele para Layout_Principal.
1 Botao (para fechar o Form2)
O que estou querendo fazer é o seguinte. Ao clicar no botao do Form1 ele pegar as informações contidas no Form2 (Layout_Principal) e jogar dentro do Form1 ( LayoutPrincipal). A principio o código esta fazendo o procedimento direito. O problema esta quando eu fecho o Form2, se eu quiser abir ele de novo o mesmo nao abri. Abaixo vou colocar os códigos que estou usando em cada form.
Form1:
unit uPrincipal;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes,
System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Menus,
FMX.Layouts, FMX.Controls.Presentation, FMX.StdCtrls;
type
Tfrm_Principal = class(TForm)
ToolBar1: TToolBar;
LayoutPrincipal: TLayout;
Button1: TButton;
procedure MenuDeslogarClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
FFormularioAtivo: TForm;
procedure AbrirJanela(AClasseFormulario: TComponentClass);
{ Private declarations }
public
{ Public declarations }
end;
var
frm_Principal: Tfrm_Principal;
implementation
{$R *.fmx}
uses uLF_Jogos;
procedure Tfrm_Principal.AbrirJanela(AClasseFormulario: TComponentClass);
var
LayoutBase: TComponent;
begin
if Assigned(FFormularioAtivo) then
begin
if FFormularioAtivo.ClassType = AClasseFormulario then
begin
Exit
end
else
begin
FFormularioAtivo.DisposeOf;
FFormularioAtivo := nil;
end;
end;
Application.CreateForm(AClasseFormulario, FFormularioAtivo);
LayoutBase := FFormularioAtivo.FindComponent('Layout_Principal');
if Assigned(LayoutBase) then
LayoutPrincipal.AddObject(TLayout(LayoutBase));
end;
procedure Tfrm_Principal.Button1Click(Sender: TObject);
begin
// FFormularioAtivo.DisposeOf;
// FFormularioAtivo := nil;
AbrirJanela(Tfrm_Resultados_LF);
end;
procedure Tfrm_Principal.MenuDeslogarClick(Sender: TObject);
begin
Close;
end;
end.Form2: (quando fecho o form)
procedure Tfrm_Resultados_LF.FormClose(Sender: TObject; var Action: TCloseAction); begin action := TCloseAction.caFree; frm_Resultados_LF := nil; end;
Acima os códigos. Quando fecho o Form2, é como se ele não tirasse o Form2 da memoria. O que podemos fazer para o código funcionar?
Rubens Pena
Curtidas 0