Fórum Pausar ttimer #198166

01/12/2003

0

como posso dar uma pausa em um objeto ttimer ???


Inscria

Inscria

Responder

Posts

01/12/2003

Motta

timer1.enabled := false;


Responder

Gostei + 0

09/01/2007

Daia

Isso eu tb estava precisando... mas como faço pra que depois de trancar.. ele volte a funcionar de novo, mas num outro intervalo de tempo?


Responder

Gostei + 0

09/01/2007

Motta

Como assim ? Não entendi.

Você pode tentar um comando chamado delay (creio que seja isto) que espera um nº de segundos) e aí dar enable novamente.
Mas no TTmimer tem uma prop. Interval (tempo em milisegundos) assim o evento do ttimer só será executado neste intervalo, creio que não precise de tratar esta espera.

Qq dúvida fale.


Responder

Gostei + 0

09/01/2007

Daia

Vou explicar melhor...
No meu form principal tenho um ttimer q atualiza um grid que exibe dados de uma tabela... O intervalo do ttimer é 20000... Tenho um outro form de Cadastro e lá exclui um registro... e quero q assim q eu exclua o registro o ttimer dispare e atualize o grid que está no form principal... e assim q ele fez isso... volte ao normal o intervalo dele q esta definido que é 20000...
Vou colocar o código abaixo:
procedure TFCadastro.btnExcluirClick(Sender: TObject);
begin
qryWork.Close;
qryWork.Open;

if trim(edtcRefer.text) = ´´ then begin
ShowMessage(´Informe a Referência!´);
edtcRefer.SetFocus;
Abort;
end;

if qryWork.Eof then
ShowMessage(´Não há dados para excluir!´)
else
if MessageDlg(´Excluir esta Referência?´, mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin
qryWork.SQL.Text := ´Delete ´ +
´from ´ +
´ DesenvolvimentoModelo ´ +
´Where ´ +
´ cRefer = ´ + QuotedStr(edtcRefer.Text );

qryWork.ExecSQL;
qryWork.SQL.Text := ´commit´;
qryWork.ExecSQL;
ShowMessage(´Referência excluída com sucesso!´);
FPrincipal.tempo.Interval := 1000;
FPrincipal.tempo.Enabled := False;
edtcRefer.SetFocus;
end;
edtcRefer.Text := ´´;


Responder

Gostei + 0

09/01/2007

Motta

Apenas dispare o evento do TTimer qdo excluir o registro

Exemplo

Crie um novo projeto coloque um timer e um botão ajuste o interval do timer para 60000

O click executa o timer.

----------------------


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Button1: TButton;
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  showmessage(´fiz´);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Timer1Timer(Sender);
end;

end.




Responder

Gostei + 0

09/01/2007

Daia

Funcionou legal!!!!!!!!
Bem assim q eu queria!!
Muito Obrigada!!!


Responder

Gostei + 0

10/01/2007

Daia

estou novamente com problema... meu sistema está trancando usando a função!!


Responder

Gostei + 0

10/01/2007

Daia

??? alguém ... please!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar