Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Fazer um Temporizador


Marian_snp

Question

Eu fiz a sequinte funçao

procedure TFrmPrincipal.BitBtn3Click(Sender: TObject);

var b : Integer;

begin

b := 0 ;

repeat

b:=b+1;

If StrToInt(Edit19.Text) < 60 Then

Edit19.Text := IntToStr(StrToIntDef(Edit19.Text,0)+1);

sleep(2000)

until b = 62;

end;

a questao e a seguinte eu preciso fazer um temporizador, pois o processo de contagem acima é muito rapido,

quando eu clico no botao já apecere o 60 no edit, então eu coloquei um sleep, mas quando eu execulto clicando no botao o sistema trava,não aceita o sleep....

alguém poderia me ajudar a fazer essa rotina.

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Existem maneiras mais facies de criar um temporizador ( voce pode usar um componente timer )

mas se quer usar esse codigo

procedure TForm1.Button1Click(Sender: TObject);
var b : Integer;
begin
  b := 0;
  repeat
    b:=b+1;
    If StrToInt(Edit19.Text) < 60 Then
       Edit19.Text := IntToStr(StrToIntDef(Edit19.Text,0)+1);
       Edit19.Refresh;
       sleep(500); // corresponde a 1/2 segundo de parada 
  until b = 60;

end;

digite 1 no edit e veja a mudança na tela

abraço

Link to comment
Share on other sites

  • 0

procedure TForm1.SpeedButton1Click(Sender: TObject);
var b: Integer;
begin
edit19.Text:='0'; Não sei para que efeito você vai usar isso??? aqui entro com valor zero,mas se você quer digitar um valôr manual já não pode ser assim!. 
    b := 0;
  repeat
    b:=b+1;
   If StrToInt(Edit19.Text) < 60 Then
       Edit19.Text := IntToStr(StrToIntDef(Edit19.Text,0)+1);
       Edit19.Refresh;
       sleep(500); // corresponde a 1/2 segundo de parada
  until b = 60;
    
end.

Esta funcionando bem agora.

Como diz o colega,Jhonas e bem o Ttimer é o mais indicado.

Abraço.

Edited by António44
Link to comment
Share on other sites

  • 0

Eu tentei com o Ttimer mas não consequi se você poder me enviar a forma de fazer eu agradeço

uma das formas de fazer:

unit Unit1;

interface

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

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

var
  Form1: TForm1;
  on_off : integer = 0;
  cont : integer =0;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
   // ligar e desligar o timer
   inc(on_off);
   if on_off = 1 then
      begin
         Timer1.Enabled := true;
         Timer1.Interval := 1000; /// 1 segundo
      end
   else
      begin
         on_off := 0;
         Timer1.Enabled := false;
      end;   
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
   inc(cont);
   edit1.Text := inttostr(cont);
   if cont > 59 then
      cont := 0;
end;

end.

abraço

Link to comment
Share on other sites

  • 0

procedure TForm1.Button1Click(Sender: TObject);
begin
   // ligar e desligar o timer
   inc(on_off);
   if on_off = 1 then
      begin

         cont := strtoint(Edit1.text);

         Timer1.Enabled := true;
         Timer1.Interval := 1000; /// 1 segundo
      end
   else
      begin
         on_off := 0;
         Timer1.Enabled := false;
      end;   
end;

no edit o contador vai começar no numero que voce digitar ( menor que 60 )

abraço

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...