Показать сообщение отдельно
Старый 17.03.2008, 19:40   #9
Новичок
 
Регистрация: 08.03.2008
Сообщений: 10
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
Xedinsey
По умолчанию

Код:
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^.
Xedinsey вне форума   Ответить с цитированием