Показать сообщение отдельно
Старый 30.03.2012, 01:28   #1913
Пользователь
 
Регистрация: 29.09.2010
Сообщений: 45
Сказал Спасибо: 1
Имеет 9 спасибок в 6 сообщенях
Санчес пока неопределено
По умолчанию

Здравствуйте ГУру. Нуб просит совета. Осиливаю потихоньку тему, есть 1 вопрос.
Как сделать так, чтобы программа в определенном месте заканчивала обработку первого пакета и начинала обрабатывать следующий такой же?
Пример.
Код:
...
if Fromserver  and (pck=HStr('1b 04 00 00 00')) then begin
    buf:=HStr('45 00 00 00 00 00 00 00 00 00');
    if Fromserver  and следующий такой же пакет (pck=HStr('1b 04 00 00 00')) then begin
       buf:=HStr('45 01 00 00 00 00 00 00 00 00');
...
Что нужно прописать, чтобы программа после посылки buf:=HStr('45 00 00 00 00 00 00 00 00 00'); заканчивала работу с этим пакетом, и начинала обрабатывать следующий? Или просто закрыть end ом и следующий If как раз попадет на следующий такой же пакет?

//J-Fobos: основной блок программы выполняется для каждого пакета что проходит через пакетхак. Обработка следующего пакета не начнется, пока не закончится обработка предыдущего. Код, который вы написали, присвоит переменной buf значение HStr('45 00 00 00 00 00 00 00 00 00'), а потом, сразу присвоит значения HStr('45 01 00 00 00 00 00 00 00 00'). И так будет каждый раз при приходе пакета HStr('1b 04 00 00 00'). Если вам важен порядок прихода пакетов, то вам надо вести их счет и ориентироваться по нему.

Последний раз редактировалось J-Fobos, 30.03.2012 в 11:00.
Санчес вне форума   Ответить с цитированием
За это сообщение Санчес нажился спасибкой от: