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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2011, 21:23   #11
BB2000
Пользователь
 
Регистрация: 03.02.2011
Сообщений: 19
По умолчанию

как реалезуется события обработки таймера?
Хотя бы код в студию.
BB2000 вне форума Ответить с цитированием
Старый 19.03.2011, 21:23   #12
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Код:
timer.interval := 1000;
...
var ticker : byte = 1;

procedure tform1.ontimer...
...
if ticker = 30 
  then begin
  ticker := 0;
  doDaJob();
  end
  else inc(ticker);

if ticker = сколько_вам_надо
  then doanyjob();
старые способы уже перестают работать в связи с переходом на новые крутейшие оси ?
phomm вне форума Ответить с цитированием
Старый 19.03.2011, 21:27   #13
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

celovec, а чего должно происходить то?
и тебе не кажется что этот код неверен
Код:
var
  gtc: integer;
begin
  gtc := GetTickCount(); // получили тики
  Timer1.Enabled := true; //активизировали таймер
{тут  пройдет меньше секунды}
 if (8000 > GetTickCount() - gtc) then close;// тиков  всегда будет <8000
Цитата:
GetTickCount() - не сработает, так как таймер был запущен на 30 сек. и вот когда эти 30сек отработает, тогда и сработает GetTickCount!
Потому вам и советуют, запускайте таймер на меньшее время и, обрабатывайте это.
это если код выше засунуть в таймер ,а у ТС он в кнопке)
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 19.03.2011 в 21:44.
Mad_Cat вне форума Ответить с цитированием
Старый 19.03.2011, 21:37   #14
BB2000
Пользователь
 
Регистрация: 03.02.2011
Сообщений: 19
По умолчанию

GetTickCount() - не сработает, так как таймер был запущен на 30 сек. и вот когда эти 30сек отработает, тогда и сработает GetTickCount!
Потому вам и советуют, запускайте таймер на меньшее время и, обрабатывайте это.

Последний раз редактировалось BB2000; 19.03.2011 в 21:40.
BB2000 вне форума Ответить с цитированием
Старый 19.03.2011, 21:54   #15
BB2000
Пользователь
 
Регистрация: 03.02.2011
Сообщений: 19
По умолчанию

Хм... запарка...
Ну сами посмотрите,
....
Это происходит в тоже время!
ButtomClic(.....);
begin
gtc := GetTickCount(); // получили тики .... в тоже время!
Timer1.Enabled := true; //активизировали таймер .... опять-же!
{тут пройдет меньше секунды}
if (8000 > GetTickCount() - gtc) then close;// тиков всегда будет <8000
end;
Оно (GetTickCount()) запускается вместе с таймером. И отроботает вместе с ним.
Пересмотрите своё отношение к Таймеру, там желательн знать, что мы тут делаем, не говарю, о потоках.
Да, ещё.
Ставьте таймер на минимум 1000 мс.(1-сек) И там обрабатывайте вашу информацию.

Последний раз редактировалось BB2000; 20.03.2011 в 15:18. Причина: Ошибка. дублирование слов.
BB2000 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Timer1 Vladnet Общие вопросы Delphi 1 05.04.2009 00:15