Como rodar o timer na condicao x
Ola Wesley
Tenho um timer com algumas rotinas dentro
Select * from tabela where campo is null ...
Como eu faço para essas rotinas que estao dentro do time somente executarem quando o frmMain estiver aberto como form principal.
O problema que ando tendo ao trabalhar com esse timer e que se abro o form de caixa o timer do frmMain dispara ,
ow seja la em qualquer outro form do projeto ele sempre dispara.Gostaria de disparar o timer somente quando o frmMain estiver aberto e na condiçao que nao exista outros forms abertos no projeto ?
Carlos Faria
Curtidas 0
Respostas
Wesley Yamazack
20/07/2010
Olá Carlos
O que esta ocorrendo é que você esta deixando seu Form que possui o Timer criado, não faça isso, crie o mesmo quando for utilizar.
Na hora que o Form for chamado coloque o seguinte Timer1.Active := True;,
Close do Form Timer1.Active := False;
EM modo de designer deixe seu timer com active = FAlse;
Ele só será ativado quando for chamado, sacou a idéia ?
Att,
Wesley Y
O que esta ocorrendo é que você esta deixando seu Form que possui o Timer criado, não faça isso, crie o mesmo quando for utilizar.
Na hora que o Form for chamado coloque o seguinte Timer1.Active := True;,
Close do Form Timer1.Active := False;
EM modo de designer deixe seu timer com active = FAlse;
Ele só será ativado quando for chamado, sacou a idéia ?
Att,
Wesley Y
GOSTEI 0
Carlos Faria
20/07/2010
Quanto a isso eu ja sabia o problema e que uso o timer no form principal ,esse form chama todos os forms do projeto e seria muito trabalhoso desactivar o timer em mais de 50 forms
Seria possivel fazer uma rotina onde esse timer so rode quando o frmPrincipal estiver somente ele aberto ?
se chamar outro form e desativa
GOSTEI 0
Wesley Yamazack
20/07/2010
Carlos,
Seus forms trabalham com herança visual ?
Um abraço
Wesley Y
Seus forms trabalham com herança visual ?
Um abraço
Wesley Y
GOSTEI 0
Carlos Faria
20/07/2010
Alguns sim outros nao ,
acho que isso resolveria
If formPrincipal.somenteeleaberto then
timer1.enable = true
else
timer1.eneble := false ;
GOSTEI 0
Wesley Yamazack
20/07/2010
Carlos,
If formPrincipal.somenteeleaberto then timer1.enable = true else timer1.eneble := false ;
Fica mais elegante assim
Timer1.Enabled := formPrincipal.somenteeleaberto
Mas realmente não tenho como saber se isso irá lhe atender, pois já que você trabalha com vários forms diferentes, fica complicado de lhe ver uma solução. Mas tenta isso qualquer coisa estamos aqui.
Um abraço
Wesley Y
If formPrincipal.somenteeleaberto then timer1.enable = true else timer1.eneble := false ;
Fica mais elegante assim
Timer1.Enabled := formPrincipal.somenteeleaberto
Mas realmente não tenho como saber se isso irá lhe atender, pois já que você trabalha com vários forms diferentes, fica complicado de lhe ver uma solução. Mas tenta isso qualquer coisa estamos aqui.
Um abraço
Wesley Y
GOSTEI 0
Wesley Yamazack
20/07/2010
Fala ae Carlos, e ai meu camarada, funcionou ?
Att,
Wesley Y
Att,
Wesley Y
GOSTEI 0
Carlos Faria
20/07/2010
Voce poderia ser mais claro ?
Somenteaberto seria funcçao do tipo boolean ou representa algum envento do form ?
GOSTEI 0
Wesley Yamazack
20/07/2010
Carlos,
você que deu a idéia, achei que tivesse funcionado.
Realmente você vai ter que fazer isso em cada form. Pois já que você não tem herança visual, fica complicado de fazer isso.
De repente criar uma função em uma unit, para desativar o timer de todos os teus forms Tipo
procedure desativar;
begin
form1.timer1.enabled := false;
form2.timer1.enabled := false;
form3.timer1.enabled := false;
form4.timer1.enabled := false;
end;
Acho que isso irá ajudar na desativação.
Att,
Wesley Y
você que deu a idéia, achei que tivesse funcionado.
Realmente você vai ter que fazer isso em cada form. Pois já que você não tem herança visual, fica complicado de fazer isso.
De repente criar uma função em uma unit, para desativar o timer de todos os teus forms Tipo
procedure desativar;
begin
form1.timer1.enabled := false;
form2.timer1.enabled := false;
form3.timer1.enabled := false;
form4.timer1.enabled := false;
end;
Acho que isso irá ajudar na desativação.
Att,
Wesley Y
GOSTEI 0
Carlos Faria
20/07/2010
Vou experimentar
GOSTEI 0
Wesley Yamazack
20/07/2010
Blz..
Um abraço
Wesley Y
Um abraço
Wesley Y
GOSTEI 0