Delphi Timer

программирование программы Delphi делфи

Вообщем создаю в форме делфи таймер с интервалом в 2 секунды. Он должен просто showmessage'ить. Я в процедуре которая вызывается по событию "нажатие кнопки" останавливаю таймер и вызывают другую, собственную процедуру abc(не событийную). Так вот когда я пробую перенести остановку таймера в процедуру abc то программа не компилируется, будто внутри abc не известно что это за таймер. Кроме того остановка работает, если ее поставить внутрь процедуры onformcreate. Выходит, грубо говоря, что остановка таймера работает только в "событийных" процедурах. Мой вопрос: как сделать что бы таймер можно было контролировать и внутри процедур, которые вызываются на по событиям а из других процедур?
Ответы:
Без кода отсюда плохо видно. Предполагаю, что вашу процедуру abc надо бы оформить как private или protected метод формы.
Вообще-то таймер работает на основе внутрисистемных сообщений.
Тип данных TMsg, событие таймера генерируется сообщением WM_TIMER
Почитай у Стив Тейксейра и Ксавье Пачеко "Делфи 5 - Руководство разработчика" Т.1 стр.194
Там подробно описан весь механизм сообщений.
Скорее всего процедура не принадлежит форме, то есть вида:
procedure abc...
begin
 Timer1.Enable := False;
...
end;


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

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

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.