Показать сообщение отдельно
Старый 29.03.2014, 17:42   #2
Местный
 
Аватар для kpa9pt
 
Регистрация: 13.01.2010
Сообщений: 159
Сказал Спасибо: 18
Имеет 30 спасибок в 23 сообщенях
kpa9pt имеет немного плохого в прошлом
По умолчанию

Цитата:
Сообщение от 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" пакет на сервер , но не отправляет его .
Может изначально таймер отключить для начала?
kpa9pt вне форума   Ответить с цитированием
За это сообщение kpa9pt нажился спасибкой от: