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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2008, 14:34   #1
Teleport
Пользователь
 
Регистрация: 04.06.2008
Сообщений: 32
По умолчанию Timer...

Здравствуйте!!
Я убрал с формы Timer1 и заменил его строкой Timer1Timer(nil) в событии onPaint для Form1. Все работает. Но вот не могу понять - как мне теперь выставить интервал для этого таймера??
Причем в программе 3 таймера. Если использую Timer1Timer(nil), то остальные два "нормальных" таймера не работают...
Как быть?
Teleport вне форума Ответить с цитированием
Старый 29.06.2008, 14:40   #2
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Не понял, тебе на время отключить таймер надо? Если да, то используй лучше Timer1.Enabled := false / true

Для выставления интервала используй Timer1.Interval := КакойтоИнтервал;
_Engine_ вне форума Ответить с цитированием
Старый 29.06.2008, 15:03   #3
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

Цитата:
Я убрал с формы Timer1 и заменил его строкой Timer1Timer(nil) в событии onPaint для Form1
Как можно заменить таймер простым вызовом процедуры???
Если ты убрал таймер то как ты хочешь выставить ему интервал. Твоя процедура timer1timer выполнится всего лиш раз при прорисовке формы.
Цитата:
Как быть?
Не убирать таймер. Он тебе мешает што ли?
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Старый 29.06.2008, 15:06   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Чево то недопонял, динамически что-ли таймер создать нужно?
Тогда так:
Код:
MyTimer1:=TTimer.Create(nil); //nil - значит не привязан к объекту, можно
//Self подставить, или конкретно владельца указать
MyTimer1.Interval := КакойтоИнтервал;
//если таймер больше не нужен, уничтожаем вручную
MyTimer1.Free;
И почему в событии Paint?
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 29.06.2008, 15:11   #5
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Цитата:
Сообщение от mutabor Посмотреть сообщение
Чево то недопонял, динамически что-ли таймер создать нужно?
Тогда так:
Код:
MyTimer1:=TTimer.Create(nil); //nil - значит не привязан к объекту, можно
//Self подставить, или конкретно владельца указать
MyTimer1.Interval := КакойтоИнтервал;
//если таймер больше не нужен, уничтожаем вручную
MyTimer1.Free;
И почему в событии Paint?
Тока не забыть еще и процедуру на таймер повесить:
MyTimer1.OnTimer := MyTimerProcedure;
_Engine_ вне форума Ответить с цитированием
Старый 29.06.2008, 15:23   #6
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

Цитата:
Твоя процедура timer1timer выполнится всего лиш раз при прорисовке формы.
Извините. Она выполнится при каждой прорисовке окна.
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Старый 29.06.2008, 15:46   #7
Teleport
Пользователь
 
Регистрация: 04.06.2008
Сообщений: 32
По умолчанию

я обрабатывал движение объектов на форме. Они двигались рывками.
(исходник1)
Мне посоветовали как избавится от рывков.
(исходник2)
вот...
Но теперь я не знаю, как мне получить доступ к интервалу таймера, в исходнике2.
Вложения
Тип файла: rar исходники.rar (16.0 Кб, 26 просмотров)
Teleport вне форума Ответить с цитированием
Старый 29.06.2008, 16:07   #8
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Цитата:
Сообщение от Teleport Посмотреть сообщение
я обрабатывал движение объектов на форме. Они двигались рывками.
(исходник1)
Мне посоветовали как избавится от рывков.
(исходник2)
вот...
Но теперь я не знаю, как мне получить доступ к интервалу таймера, в исходнике2.
Ну так, нет таймера - нет и его интервала

Кинь на форму компонент TTimer и назначь ему в событие OnTimer процедуру Timer1Timer;
_Engine_ вне форума Ответить с цитированием
Старый 29.06.2008, 16:26   #9
Teleport
Пользователь
 
Регистрация: 04.06.2008
Сообщений: 32
По умолчанию

2 _Engine_
тогда у меня вся программа виснет.
Посоветуй, как мне использовать Timer1Timer(nil), но при этом - эта процедура не должна влиять на остальные таймеры. Просто у меня в программе еще два таймера, которые на форме лежат и обрабатывают отдельные процедуры)))

2 mutabor посмотри исходники. Может посоветуешь в другом событии?

2 hoza_syl
посмотри в исходниках моих. Может я неправильно чего понимаю)))
Но Timer1 мне5 мешает, уверен)))

Последний раз редактировалось Stilet; 07.07.2008 в 08:48.
Teleport вне форума Ответить с цитированием
Старый 29.06.2008, 21:11   #10
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Да, OnPaint генерируется при каждой отрисовке окна, если конечно вручную его из таймера не вызывать, что и делается с помощью InvalidateRect. С таким же успехом можно любую процедуру заюзать, а Paint там нужна на случай скрытия, сворачивания и т.п.
Посмотри эту тему >>>
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
timer ZYRGiX Помощь студентам 3 21.07.2008 15:15
Timer... Roof Общие вопросы Delphi 11 11.10.2007 12:57
timer и shape гера Помощь студентам 4 16.04.2007 20:14
Timer PAVEL315 Компоненты Delphi 16 20.12.2006 19:47
timer Toxa Компоненты Delphi 6 06.12.2006 06:58