Logoff - Verificar janelas ativas e fechá-las.

Delphi

27/07/2005

Pesquisei e não achei nada parecido com o que pretendo fazer.

Como eu poderia verificar todas as janelas que estão abertas(ativas) num programa e fechá-las e abrir o formulario de login.

MAS sem fechar todo o sistema e abrir de novo...

Desde já agradeço pela atenção....

Diego

[color=green:f2fbe92afd]Título editado por gandalf.nho. Favor não postar em maiúsculas[/color:f2fbe92afd]


Diegus

Diegus

Curtidas 0

Respostas

Tremonti

Tremonti

27/07/2005

Tenta isso cara...

procedure TfrmPrincipal.FecharForms(const FormLivre: array of TForm);
var
vC, vX : integer;
vFech : Boolean;
begin
for vC := Screen.FormCount-1 DownTo 0 do
Begin
vFech := True;
for vX := Low(FormLivre) to High(FormLivre)do
if Screen.Forms[vC] = FormLivre[vX] then
vFech := False;
if vFech then
if Screen.Forms[vC].Showing then
begin
Screen.Forms[vC].Visible := False; //Rotina para deixar Invisivel
Screen.Forms[vC].Close;
Screen.Forms[vC].Action.Free; // Rotina para Limpar da memória
end;//IF
end;//For vC
end;


GOSTEI 0
Diegus

Diegus

27/07/2005

Tenta isso cara... procedure TfrmPrincipal.FecharForms(const FormLivre: array of TForm); var vC, vX : integer; vFech : Boolean; begin for vC := Screen.FormCount-1 DownTo 0 do Begin vFech := True; for vX := Low(FormLivre) to High(FormLivre)do if Screen.Forms[vC] = FormLivre[vX] then vFech := False; if vFech then if Screen.Forms[vC].Showing then begin Screen.Forms[vC].Visible := False; //Rotina para deixar Invisivel Screen.Forms[vC].Close; Screen.Forms[vC].Action.Free; // Rotina para Limpar da memória end;//IF end;//For vC end;


Quando eu clicar no Botão LOGOFF... como eu devo chamar este procedimento? :D

Valeu amigo pela atenção..


GOSTEI 0
Tremonti

Tremonti

27/07/2005

Informe os forms que vc quer que nao feche


Exemplo

FecharForms([form1, form2]);


Pronto!!!


GOSTEI 0
Titanius

Titanius

27/07/2005

Se for MDI, tente
procedure TFrmPrincipal.CloseAll;
var
 I: Integer;
begin
 for I := MDIChildCount - 1 downto 0 do
  MDIChildren[I].Close;
end;



[]s


GOSTEI 0
Diegus

Diegus

27/07/2005

Informe os forms que vc quer que nao feche Exemplo FecharForms([form1, form2]); Pronto!!!


Eu fiz um teste... adicionei 4 formulários... criei primeiramente o form2 (abrir sozin), com um botão chamando todos os outros forms... adicionei a procedure que vc me falou. Tem tb um botão chamando a rotina que vc me passou... FecharForms ([FecharForms([form1]). Mas quando clico no botão no form1 fecham todas as janelas e finaliza o programa... q q fiz de errado.


GOSTEI 0
POSTAR