Fórum Form Fecha e depois não abri mais (FireMonkey) #617579
07/02/2022
0
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | 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)
1 2 3 4 5 6 7 8 9 | 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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)