Problema ao fechar abas(TDI)

14/12/2023

0

Fala pessoal beleza? Pessoal eu estou com problema que quando eu vou fechar
uma aba de uma Form(TTDI) ele fecha tudo de uma vez quando eu vou fechar só uma!

unit View.Principal;

interface

uses
Winapi.Windows,
Winapi.Messages,
System.SysUtils,
System.Variants,
System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.ExtCtrls,
Vcl.StdCtrls,
TDI,
View.Base,
View.tdi.base,
View.tdi.filial,
View.tdi.home,
View.tdi.Venda,
Vcl.Imaging.pngimage;

type
TViewPrincipal = class(TViewBase)
PnlTopo: TPanel;
PnlMenu: TPanel;
PnlBackGround: TPanel;
BtnTeste: TButton;
PnlTdi: TPanel;
Button1: TButton;
Button2: TButton;
PnlLogoSistema: TPanel;
PnlImgLogoSistema: TPanel;
ImgLogoSistemaBranca: TImage;
PnlNomeEmpresa: TPanel;
ImgLogoSistemaAzul: TImage;
Label1: TLabel;
Label2: TLabel;
PnlMaisUsados: TPanel;
PnlUsuario: TPanel;
PnlImgUser: TPanel;
ImgUserBranca: TImage;
ImgUserAzul: TImage;
PnlDadosUser: TPanel;
LblNome: TLabel;
LblTipoUser: TLabel;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ImgLogoSistemaBrancaMouseEnter(Sender: TObject);
procedure ImgUserBrancaMouseEnter(Sender: TObject);
procedure ImgUserAzulMouseLeave(Sender: TObject);
procedure ImgLogoSistemaAzulMouseLeave(Sender: TObject);
procedure ImgLogoSistemaAzulClick(Sender: TObject);
procedure BtnTesteClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
var
FTDI : TTDI;

end;

var
ViewPrincipal: TViewPrincipal;

implementation

{$R *.dfm}

procedure TViewPrincipal.FormShow(Sender: TObject);
begin
inherited;
FTDI := TTDI.Create(pnlTDI, TViewHomeTDI);
FTDI.MostrarMenuPopup := False;

end;

procedure TViewPrincipal.BtnTesteClick(Sender: TObject);
begin //Vendas
inherited;
FTDI.MostrarFormulario(TViewVendasTDI, true);
end;

procedure TViewPrincipal.Button2Click(Sender: TObject);
begin //Filial
inherited;
FTDI.MostrarFormulario(TViewFilialTdi, true);
end;


procedure TViewPrincipal.Button1Click(Sender: TObject);
begin
inherited;
Close;
end;

end.
Emanoel Carvalho

Emanoel Carvalho

Responder

Post mais votado

14/12/2023

Você está fechando o form TDI clicando no [X] (no título da janela TDI), ou está clicando no Button1, que executa o Close?

Aparentemente, no Button1, o Close é do componente TViewPrincipal e não das janelas TDI (TViewHomeTDI, TViewVendasTDI, etc.).

Imagino que você precisaria identificar o form ativo e executar o Close dele.

Arthur Heinrich

Arthur Heinrich
Responder

Mais Posts

15/12/2023

Emanoel Carvalho

Você está fechando o form TDI clicando no [X] (no título da janela TDI), ou está clicando no Button1, que executa o Close?

Aparentemente, no Button1, o Close é do componente TViewPrincipal e não das janelas TDI (TViewHomeTDI, TViewVendasTDI, etc.).

Imagino que você precisaria identificar o form ativo e executar o Close dele.


Esse "Close" e pra fechar o meu sistema, ele não tem nada ligado ai TDI. Eu estou fechando a minha aba TDI no [X] mesmo!
Responder

15/12/2023

Arthur Heinrich

Neste caso, ao clicar no X, deveria chamar o evento OnCloseQuery, ou algo do tipo.

Basta executar:

Action:=caFree;

Ao sair do evento, o form se fecha e libera a memória.

Se está fechando os demais, é sinal de que tem algum outro evento sendo tratado e está fechando os demais forms.
Responder

28/12/2023

Emanoel Carvalho

Neste caso, ao clicar no X, deveria chamar o evento OnCloseQuery, ou algo do tipo.

Basta executar:

Action:=caFree;

Ao sair do evento, o form se fecha e libera a memória.

Se está fechando os demais, é sinal de que tem algum outro evento sendo tratado e está fechando os demais forms.




Cara eu fui ver e percebi que isso só acontece na versão do delphi11, porem o motivo eu não sei !
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