PDA

Просмотр полной версии : Не работает таймер


niGGa137
10.01.2010, 22:45
Очень давно не пользовался программой, но сегодня появилась необходимость запустить ооочень давно написанный скрипт.
Скрипт был переделан на обновленный протокол, но не работал. При дебагинге выяснилось, что причина в таймере - он тупо не запускается.
В качестве проверки написал тестовый скрипт содержащий только таймер, он так же не стал работать.

Вот этот тестовый скрипт:

var
Timer1 : TTimer;

procedure Init; //Вызывается при включении скрипта
begin
Timer1:=TTimer.Create(nil);
Timer1.OnTimer:=@OnTimer1;
Timer1.enabled:=true;
Timer1.interval:=100;
end;

//сообщения
procedure SendMsgUser(Msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(Msg);
SendToClient;
end;

procedure OnTimer1(Sender: TObject);
begin
SendMsgUser('22222');
end;

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

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
SendMsgUser('11111');
end.
Где то на сайте было написано, что в некоторых версиях не работает таймер. Для проверки были скачаны версии - от 3.5.31.162 до 3.5.33.164

Подскажите в чем проблема?

alexteam
10.01.2010, 23:04
SendToClientEx или задать UseForConnectName

niGGa137
10.01.2010, 23:18
SendToClientEx или задать UseForConnectName
Спасибо, как то не подумал об этом.