Код:
begin
if FromClient and (pck[1]=#$38) and (pck[2]=#$2D) then begin
sCom:=ReadS(4);
com:=copy(sCom,1,8);
if com='clossell' then begin
status:=true;
buf:=HStr('73');
SendToServer;
pck:=nil;
end;
end;
if wait(t1,2000) and (status=true) then begin
buf:=HStr('76');
SendToServer;
end;
end.
Если так, то посылается пакет 73, получаются другие (все нормально), через 2с посылается пакет 76. НО, потом еще каждые 2с посылается пакет 76... %)
Код:
begin
if FromClient and (pck[1]=#$38) and (pck[2]=#$2D) then begin
sCom:=ReadS(4);
com:=copy(sCom,1,8);
if com='clossell' then begin
status:=true;
buf:=HStr('73');
SendToServer;
pck:=nil;
end;
end;
if wait(t1,2000) and (status=true) then begin
buf:=HStr('76');
SendToServer;
status:=false;
end;
end.
Если так, то оба пакета посылаются одновременно, т.е. таймер не срабатыват.
Вот такая вот дрочь... Что делать, ума не приложу.
Там кто-то в полезных функциях писал таймер, который выполняется не в основном потоке, но в коде ошибка когда ссылается на указатель nil^.