Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > визуальный таймер


Автор: dfs- 23.3.2005, 01:32
Помогите, пожалуйста, сделать визуальный отсчет времени в формате мин:сек, ну и как только получили 0:00, то do something...

Автор: Poseidon 23.3.2005, 02:20
Держи:
На форме: Timer1 (нужен он), Edit1 и Edit2 (для ввода первоначальных мин и сек), Label1(для итображения), button1 (для запуска таймера).

Код
unit Unit1;

interface

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

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

var
  Form1: TForm1;

  t: TTime; // нам нужна эта переменная

implementation

{$R *.dfm}

procedure dosomething; // та самая процедура, каторая будет выполнятся
begin
ShowMessage('Время вышло');
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
t:= StrToTime('0:'+Edit1.Text+':'+Edit2.Text);
label1.Caption:= '0:'+Edit1.Text+':'+Edit2.Text;
Timer1.Enabled:= True;
Button1.Enabled:= False;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if t = 0
then
  begin
  Timer1.Enabled:= False;
  Button1.Enabled:= True;
  dosomething;
  end
else
  begin
  t:= t- StrToTime('0:00:01');
  Label1.Caption:= TimeToStr(t);
  end;
end;

end.


Только вот нужно запретить ввод букв в Edit, а то ошибки будут.

В инспекторе объектов нужно установить Timer1.Enabled:= False; А так, все остальное на твое усмотрение.

PS. Я, по сути, за тебя все зделал. Есть конечно моленькие недороботки, но это уже малочи. Надеюсь помог.

Автор: Alex103 23.3.2005, 02:25
Цитата(Poseidon @ 23.3.2005, 02:20)
Держи:
На форме: Timer1 (нужен он), Edit1 и Edit2 (для ввода первоначальных мин и сек), Label1(для итображения), button1 (для запуска таймера).

Класная идея!!!!! Надо бы и себе записать!!

Автор: dfs- 23.3.2005, 02:46
2 Poseidon
Огромное спасибо!

Автор: Poseidon 23.3.2005, 02:53
Цитата
Огромное спасибо!
Всегда рад помочь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)