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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2009, 14:10   #1
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
Вопрос Как заставить TTimer работать быстрее?

Прочитал что TTimer даже при interval=1 в реальности задержка 55 мс. Мне же нужно чтобы код в OnTimer вызывался чаще. Как это сдеалть (не обязятельно с помощь таймера)?
Вадим Буренков вне форума Ответить с цитированием
Старый 20.07.2009, 14:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как это сдеалть (не обязятельно с помощь таймера)?
Организуй отдельный поток через CreateThread. Помоему это самое быстрое...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.07.2009, 14:48   #3
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Вот тут посмотри : http://www.interface.ru/fset.asp?Url...d/delzampr.htm
Там внизу страницы теория и листинг использования Win API ,а не стандартного временного таймера с его 55 мс.
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 20.07.2009, 15:59   #4
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Прочитал информацию, переварил в мозгу...Сделал тестовый проэкт, где в таймере сделаном таким образом проибавляется счетчик и все работает. Но как только заменил TTimer в своей игре увидел следующее (игра запускается, работает примерно секунду и вылазит ошибка):
Изображения
Тип файла: jpg 1.JPG (16.6 Кб, 84 просмотров)
Вложения
Тип файла: rar Таймер.rar (164.4 Кб, 14 просмотров)
Вадим Буренков вне форума Ответить с цитированием
Старый 20.07.2009, 18:47   #5
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Ну и что мы должны понять из этого сообщения?

Пока что очевидно тольк, что ты запрашиваешь какие-то ресурсы и ни фига не освобождаешь их. Видимо, как раз при обработке события таймера.

Upd
Ага, покопался в исходнике. Первоначальный диагноз не подтвердился.
Процедура таймера выполняется в отдельном потоке, следовательно, нельзя просто так напрямую обращаться к элементам формы.

И нужно защищаться от повторного вызова своей процедуры. В приведенном примере народ останавливает таймер, а потом в конце обработки запускает его снова

Последний раз редактировалось Black Fregat; 20.07.2009 в 19:15.
Black Fregat вне форума Ответить с цитированием
Старый 21.07.2009, 09:08   #6
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Цитата:
ты запрашиваешь какие-то ресурсы и ни фига не освобождаешь их.
С ресурсами и игрой все в порядке, ведь с обычным таймером все работает.
Цитата:
И нужно защищаться от повторного вызова своей процедуры.
Это как?
Цитата:
нельзя просто так напрямую обращаться к элементам формы.
А как тогда обращаться?
Цитата:
В приведенном примере
Каком?
Вадим Буренков вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заставить работать CheckBox? ridmal Microsoft Office Word 1 21.05.2009 09:47
Seagate - ST3320620AS 320Gb. работает в режиме SATA1 и может работать в двое быстрее, как настроить? MacTiger Компьютерное железо 1 21.04.2009 04:57
Как заставить работать NFS 2 SE? Манжосов Денис :) Gamedev - cоздание игр: Unity, OpenGL, DirectX 6 02.11.2008 16:35
Как заставить работать php? yourself Помощь студентам 9 20.05.2008 08:08
Как заставить работать dll ? Volkogriz Общие вопросы Delphi 10 13.12.2007 10:24