Fechar Forms

Delphi

06/05/2005

Galera, eu tenho um formulario principal da aplicação...

tenho uma rotina que testa se tiver inativo por algum tempo ele mostra a tela de login novamente...

soh que gostaria de mandar fechar todos os forms abertos...

entenderam?!

nao sei se da pra fazer um loop...e mandar ir fechando todos abertos...menos o principal...

Grande Abraço...


Tremonti

Tremonti

Curtidas 0

Respostas

Edilcimar

Edilcimar

06/05/2005

é mdi?


GOSTEI 0
Fred

Fred

06/05/2005

A aplicação eh MDI ou SDI???


GOSTEI 0
Tremonti

Tremonti

06/05/2005

SDI


GOSTEI 0
Tremonti

Tremonti

06/05/2005

Tenho uma aplicação SDI

e crio formularios conforme preciso...

Mas em um certo tempo, se fica inativo o programa ele me abre novamente a tela de Login...

Gostaria de antes de abrir a tela de login, fechar todos os forms abertos..(Close)
menos o frmPrincipal e deixar o frmLogin lah..

Um ABraço...


GOSTEI 0
Marco Salles

Marco Salles

06/05/2005

Tente isto . Talvez te dara uma idéia de Como Fazer

É Claro que este Evento deve ser colocado em algum Timer, para ser disparado conforme sua necessaidade...

Coloquei No Botão so , para ter uma idéia .

procedure TForm1.Button2Click(Sender: TObject);
var
 i:Integer;
begin
i:=0;
while i <= Application.ComponentCount-1 do
  begin
    if application.Components[i] is Tform Then
      begin
        showmessage((application.Components[i].name));
          //Form1 = Nome do seu FormPrincipal
          if TForm(application.Components[i]).name <> ´Form1´ Then
            begin
              if (TForm(application.Components[i])).Visible Then
                 begin
                   Showmessage(´Destruindo´);//desnecessário
                   Tform(Application.Components[i]).Hide;
                end;
            end;
     end;
    i:=i+1;
  end;
end;


É Claro que não destroi, neste exemplo ele so esconde.
e a mensagem tb não precisa e so para ilustrar

Acho que talvez no seu caso , seje melhor esconder do que ter que criar tudo de novo


GOSTEI 0
Tremonti

Tremonti

06/05/2005

Cara, nao deu certo aki...

Poderia me ajudar de novo?!/


GOSTEI 0
Marco Salles

Marco Salles

06/05/2005

Com esta o seu código??
e o que que aconteceu???
Não compilou?? Ou Foi erro de execução???


GOSTEI 0
Tremonti

Tremonti

06/05/2005

Compilou normal

nao deu erro

Ele soh nao destroi os forms


GOSTEI 0
Edilcimar

Edilcimar

06/05/2005

o código dele hide, esconde o form, não destói, se quizer destruir substitua o hide por release


GOSTEI 0
Tremonti

Tremonti

06/05/2005

Nao funciona
nao da erro

mas ele nao destroy tb

Abraços...


GOSTEI 0
POSTAR