Saber se um Form MDI esta aberto
Ola eu uso windows 10 e delphi berlim, meu sistema é baseado em MDI form, gostaria de sabe como faço para identificar de um form MDI child esta aberto.
Eu uso a seguinte procedure para abrir um form:
procedure AbreForm(aClasseForm: TComponentClass; aForm: TForm);
begin
Application.CreateForm(aClasseForm, aForm);
TForm(aForm).Show;
end;
obrigado.
Eu uso a seguinte procedure para abrir um form:
procedure AbreForm(aClasseForm: TComponentClass; aForm: TForm);
begin
Application.CreateForm(aClasseForm, aForm);
TForm(aForm).Show;
end;
obrigado.
Wilton Júnior
Curtidas 0
Melhor post
Natanael Ferreira
22/08/2017
Para este código funcionar:
Você precisa setar nil ao form ao fechar, exemplo:
If (aForm = nil) then
{Código }
end;Você precisa setar nil ao form ao fechar, exemplo:
form1.Destroy; form1:=Nil; ;
GOSTEI 1
Mais Respostas
Luiz Vichiatto
22/08/2017
If (aForm = nil) then
{Código }
end;
https://www.devmedia.com.br/dicas-saber-se-um-form-esta-aberto-ou-nao/1576
GOSTEI 0
Wilton Júnior
22/08/2017
eu já tentei isso
if FrmProduto <> nil then
showmessage(aberto);
tentei aaté assigned
Eu preciso saber se o forma esta aberto.
if FrmProduto <> nil then
showmessage(aberto);
tentei aaté assigned
Eu preciso saber se o forma esta aberto.
GOSTEI 0
Luiz Vichiatto
22/08/2017
Este é o trecho de código que funciona planamente no sistema que tenho em mãos, detalhe é que sempre inicio
outro trecho que também é significativo no sistema
if frmMain = nil then begin frmMain := TfrmMain.Create(self); frmMain.WindowState := wsMaximized; frmMain.Showmodal; end
outro trecho que também é significativo no sistema
if qrlfBloquetos <> nil then
with qrlfBloquetos do
begin
qryNotasBloqueto.Active := false;
qryBloqueto.Active := false;
tbBanco.Active := false;
tbLoja.Active := false;
end;
FreeAndNil( qrlfBloquetos );
GOSTEI 0
Luiz Vichiatto
22/08/2017
Acho que é este ActiveMDIChild, mas não sei como utilizar, que não utilizo este método. Veja se ajuda este código
for n:=0 to (MainForm.MDIChildCount-1)
begin
If MainForm.MDIChildren[n].Active then
begin
// do your thing here
end;
end;
GOSTEI 0