Показать сообщение отдельно
Старый 17.04.2012, 22:30   #1
Местный
 
Аватар для Deffol
 
Регистрация: 17.02.2011
Сообщений: 118
Сказал Спасибо: 51
Имеет 2 спасибок в 2 сообщенях
Deffol пока неопределено
По умолчанию Некорректная работа таймера

Приветствую всех.
Давненько не писал скрипты, опять вернулся к этому и сразу столкнулся с проблемой, и, я не понимаю в чем проблема.
Вот собственно скрипт: ( сори забыл как делфи код делать )
PHP код:
var
    
Timer:TTimer;
    
Step:byte
    
name:string;
procedure Init;
begin
    Step
:=1;
    
Timer:=TTimer.Create(nil);
    
Timer.OnTimer:=@OnTimer;
    
Timer.enabled:=false;
end;

procedure Free;
begin
    Timer
.free;
end;

procedure OnTimer(SenderTObject);
begin
    begin
        
case Step of
        1
:
            
begin
                buf
:=HStr('B2 00 57 71 FF 00 32 00 00 00');
                
SendToServerEx(name); 
                
Timer.interval:=600;
                
Inc(Step);   
            
end;   
        
3:
            
begin
                buf
:=HStr('B2 00 57 71 FF 00 33 00 00 00');
                
SendToServerEx(name);    
                
Step:=1;
                
Timer.enabled:=false;
            
end;
        
end;   
    
end;
end;

    
begin     
    name
:=ConnectName;        
    if 
FromClient and (pck[1]=#$B2) and (ReadH(6)=12544) then         
        
Timer.enabled:=true;      
    
end
Проблема в том, что выполняется только первый Step, а иногда и он не выполняется ( чистый рандом ), второй степ вообще не выполняется.
Есть подозрения, что это из за ConnectName, не могу проверить ибо не знаю как по другому реализовать его, допустим через const если объявить имя соеденения, даже задав имя через SetName, скрипт не включается вообще. Это единственный способ который помог мне включить скрипт.
Deffol вне форума   Ответить с цитированием