Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как работает таймер! 
:(
    Опции темы
Shadex
Дата 24.5.2005, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 23.5.2005

Репутация: нет
Всего: 1



Объясните пожалуйста как мне отсчитать определенное количество времени, допустим 1\20 секунды, и только потом выполнить отпределеное действие! причем этот отсчет мне необходимо делать несколько раз, тоесть сбрасывать таймер и занаво запускать! Извините что задаю такие глупые вопросы, просто срочно нужно сделать лабу по программингу и времени нет книги читать! Заранее благодарен за помощь! smile
PM MAIL   Вверх
Yanis
Дата 24.5.2005, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Таймер срабатывает через определённое кол-во милисекунд, которое указывается в св-ве Interval. 1/20 это 50 милисекунд, т.к. в одной секунде 1000 милисекунд. Если св-во Enabled таймера равно True, а Interval равно 50, то событие OnTimer будет наступать каждые 1/20 секунды. OnTimer - в этом событии тебе нужно делать
Цитата(Shadex @ 24.5.2005, 23:24)
отпределеное действие!




--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Shadex
Дата 24.5.2005, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 23.5.2005

Репутация: нет
Всего: 1



А где и как пишется это событие OnTimer? И если мне с каждым разом нужно отсчитывать разное время, то мне придется делать несколько таймеров или как?
PM MAIL   Вверх
Yanis
Дата 24.5.2005, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(Shadex @ 24.5.2005, 23:49)
А где и как пишется это событие OnTimer? И если мне с каждым разом нужно отсчитывать разное время, то мне придется делать несколько таймеров или как?

Нет. Событие OnTimer происходит постоянно, пока Enabled = True. Если кинуть на форму таймер и 2 раза кликнуть по нему, то IDE сама создаст код для обрабоки этого события, а тебе нужно будет только вписать, что тебе нужно делать в этом событии. Ё-моё.

P.S. Может лучше напишешь задание, а я тебе его сделаю?


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Shadex
Дата 25.5.2005, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 23.5.2005

Репутация: нет
Всего: 1



ну если не сложно можешь и сделать! я буду очень благодарен!

Написать приложение Windows, которое выполняет анимацию
битового образа.
Этапы выполнения работы.
1) Создать главное окно. Заголовок содержит ФИО, гр., вар.
2) Создать меню вида: Begin Animate Stop About Quit
│Show picture│
│Choose │
По Quit приложение завершается.
По About открывается окно с информацией о разработчике.
3) По Show picture в центре экрана рисуется объект, состо-
ящий из нескольких графических примитивов. Он запоминается
в виде битового образа.
4) Пo Choose открывается диалоговое окно вида:
┌────────────────────────────────────────────────────┐
│ From Speed: │
│ ┌─1──┐ ┌2───┐ ┌─5──────────┬┐ ┌────────╖
│ └────┘ └────┘ ├────────────┤│ │ O K ║
│ ├────────────┤│ ╘════════╝
│ To: ├────────────┤│ ┌────────╖
│ ┌─3──┐ ┌4───┐ ├────────────┤│ │ Cancel ║
│ └────┘ └────┘ └────────────┴┘ ╘════════╝
└────────────────────────────────────────────────────┘
где 1,2,3,4 - окна-pедактоpы типа TEdit для ввода X и Y составляющих
кооpдинат начального и конечного положения объекта
5 - окно-список для ввода скоpости движения объекта
OK, Cancel - кнопки типа TBitBtn
5) По Animate объект начинает перемещаться в между выбранными точками
с заданной скоpостью, по Stop - пpекpащает движение.

вообщем нужно чтобы фигура перемещалась между двумя точками с определенной скоростью! а скорость вроде выбирается из списка! если не трудно хотя бы подскажи как это все реализовать! в долгу не останусь, смогу помочь в других языках программирования! просто Delphi только начал изучать! а лабу уже нужно сдать!
PM MAIL   Вверх
Yanis
Дата 25.5.2005, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Даже не знаю с чего начать. Думаю проблем с проетировкой интерфейса возникнуть не должно. Я бы с радостью сейчас всё расписал, но уже поздно. Если завтра устроит, то попробую сделать твою программу. К тому же кто-нибудь сейчас тебе ещё поможет smile


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Shadex
Дата 25.5.2005, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 23.5.2005

Репутация: нет
Всего: 1



да, меня и завтра устроит! мне в четверг сдать нужно! если будет желание помоги! огромное спасибо! smile
PM MAIL   Вверх
Snowy
Дата 25.5.2005, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Зачем здесь вообще таймер?
Таймер все равно не срабатывает с малыми интервалами.
Здесь нужно использовать Sleep, после которого выполнять действия, а потом давать Application.ProcessMessages.
PM MAIL   Вверх
Shadex
Дата 25.5.2005, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 23.5.2005

Репутация: нет
Всего: 1



А можно поподробнее, как работает sleep? smile
PM MAIL   Вверх
Snowy
Дата 25.5.2005, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



А в хелп не заглянуть?
Код

repeat
  ... Что-то делаем
  Application.ProcessMessages;
  Sleep(20); // спим 20 сек, а потом пошли дальше
until пока не надоест

Добавлено @ 09:47
Поправочка - 20 миллисекунд. (0.02 секунды)
PM MAIL   Вверх
Shadex
Дата 25.5.2005, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 23.5.2005

Репутация: нет
Всего: 1



smile спасибо!
PM MAIL   Вверх
poor_yorik
Дата 25.5.2005, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 12.1.2005
Где: Общаги г. Киева

Репутация: нет
Всего: 8



Предлагаю простую процедуру smile

Код

procedure Delay(msecs : Longint); {В милисекундах}
var
 FirstTick : longint;
begin
 FirstTick:=GetTickCount;
 repeat
  Application.ProcessMessages; {Чтоб не зависало Вindows}
 until GetTickCount-FirstTick >= msecs;
end;


Ну а в нужном месте вызываешь
Код

...
Delay(50);
...

--------------------
Семь раз отмерь, один раз - откомпиль.... Семь раз отпей, один раз - отлей... Семь раз отъешь, один раз - не жадничай и другим дай...
PM MAIL YIM   Вверх
Shadex
Дата 25.5.2005, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 23.5.2005

Репутация: нет
Всего: 1



Всем огромное спасибо! Я уже все сделал! Завтра надеюсь сдать! smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0569 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.