Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2011, 19:11   #1
megostudent
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 320
По умолчанию таймер

Код:
var
  Form1: TForm1;
      i:integer;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
i:=10;
timer1.Enabled:=false;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
i:=i-1;
Label1.Caption:='осталось'+' '+ inttostr(i)+' '+'секунд';
if i=0 then
i:=10;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.Enabled:=true;
end;

end.
вот код по которому идет отчет времени от 10 и заново. как сделать чтобы i которому я присваиваю 10 бралось с едита, то есть ввел в едит 5 пошел отчет с 5, ввел 30 пошел с 30?
пробовал :
Код:
var
  Form1: TForm1;
      i:integer;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
i:=strtoint(edit1.text);
timer1.Enabled:=false;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
i:=i-1;
Label1.Caption:='осталось'+' '+ inttostr(i)+' '+'секунд';
if i=0 then
i:=strtoint(edit1.text);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.Enabled:=true;
end;

end.
выбивает ошибку.
подскажите...

Последний раз редактировалось Stilet; 31.07.2011 в 20:27.
megostudent вне форума Ответить с цитированием
Старый 31.07.2011, 19:16   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Вот так..
Код:
procedure Button1Click(Sender : TObject);
begin
        i:=StrToInt(Edit1.Text);
        Timer1.Enabled:=True;
end;

procedure Timer1Timer(Sender : TObject);
begin
        Label1.Caption:='Осталось '+IntToStr(i)+' секунд';
        Dec(i);
        if i = -1 then Timer1.Enabled:=False;
end;
И в дизайнере объектов задайте у таймера свойство Enabled равным False, а интервал - 1000.
_-Re@l-_ вне форума Ответить с цитированием
Старый 31.07.2011, 19:20   #3
megostudent
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 320
По умолчанию

так мне нужно чтобы таймер не останавливался, а начинал отчет заново

что за привычка сначало отписывать а потом пробовать код менять, все получилось спасибо

а вот еще такой вопрос назрел
timer1.Interval:=strtoint(Edit1.Tex t);
когда я указываю интервал в едит я его должен указывать в милисекундах (10000=10сек), а как сделать что бы задавать не милисекунды а секунды?

Последний раз редактировалось Stilet; 31.07.2011 в 20:27.
megostudent вне форума Ответить с цитированием
Старый 31.07.2011, 19:46   #4
volod3000
Форумчанин
 
Аватар для volod3000
 
Регистрация: 18.12.2008
Сообщений: 266
По умолчанию

Делайте простое умножение на 1000 -> это 1'

Мало открыть человеку глаза, большинство еще просит указать дорогу и ждет волшебного пенделя.
volod3000 вне форума Ответить с цитированием
Старый 31.07.2011, 22:28   #5
megostudent
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 320
По умолчанию

точно! )))
megostudent вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таймер Sheva144 C++ Builder 2 19.04.2011 18:24
таймер Tema_666 Общие вопросы Delphi 6 03.03.2011 09:20
Таймер Ins1De Общие вопросы C/C++ 2 26.05.2010 22:29
Таймер Михаил Юрьевич Общие вопросы Delphi 1 16.07.2008 08:46
Таймер в С# kommunist Общие вопросы .NET 3 02.06.2008 12:11