Показать сообщение отдельно
Старый 29.03.2014, 17:34   #1
Пользователь
 
Регистрация: 01.08.2010
Сообщений: 82
Сказал Спасибо: 49
Имеет 5 спасибок в 4 сообщенях
semiromid пока неопределено
По умолчанию Не работает таймер

Здравствуйте ув. программисты . Сутки уже сижу не могу разобраться почему не хочет работать таймер.

Код:
var
   Timer01: TTimer;
procedure Init; //Вызывается при включении скрипта
begin
   Timer01:=TTimer.Create(nil); //выделяем памать и т.п.
   Timer01.OnTimer:=@OnTimer01; //привязываем процедуру к событию
   Timer01.enabled:=true; //начальное положение включен(true)/выключен(false)
   Timer01.interval:=2000; //интервал(в милисекундах) как часто таймер срабатывает
end;

procedure OnTimer01(Sender: TObject);
begin
        buf:=HStr('39 04 00 00 00 00 00 00 00 00'); 
        SendToServer; 
end;

procedure Free; //Вызывается при выключении скрипта
begin
   Timer01.free; 
end;

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
    if FromClient and (pck=HStr('56 18 00 00 00 00 00 00 00 00')) then 
     begin
        buf:=HStr('19 B6 C6 A4 40 00 00 00 00'); 
        SendToServer;
        Timer01.enabled:=true; 
     end 
end.
Должно работать следующим образом : При приходе пакета "56" , скрипт отправит пакет "19". Это условие выполняется , а дальше нет. После отправки "19" пакета скрипт включает таймер Timer01.enabled:=true; после включения таймера скрипт должен отправить "39" пакет на сервер , но не отправляет его .

Последний раз редактировалось semiromid, 29.03.2014 в 17:38.
semiromid вне форума   Ответить с цитированием