Показать сообщение отдельно
  #2  
Старый 12.03.2013, 19:57
Аватар для RusMaXXX
RusMaXXX RusMaXXX вне форума
Начинающий
 
Регистрация: 01.10.2008
Сообщения: 138
Версия Delphi: 7
Репутация: 21
Сообщение

Используй API-функцию (описана в справке SDK):

Код:
PurgeComm(
HANDLE hFile, // дескриптор порта
DWORD dwFlags // флаг действия
);

// dwFlags - Этот параметр м.б. комбинацией следующих значений:
// PURGE_TXABORT - Прерывает операцию записи в порт даже если она не завершена;
// PURGE_RXABORT - То же для операции чтения;
// PURGE_TXCLEAR - Очищает выходной буфер (запись), т.е. компьютер можно не перезагружать ;
// PURGE_RXCLEAR - Очищает входной буфер (чтение).

пример:
Код:
//очитска
PurgeComm(Com,PURGE_RXCLEAR or PURGE_TXCLEAR); 

// проверка буфера

function ReadCh(Var Ch:Byte): dword;
var
  n : dword;
begin
  Readfile(Com, ch, 1, result, nil);
end;


хотя можно организовать цикл чтения порта до тех пор пока не будут возвращаться пустые значения - это и означает, что буфер порта пуст.
__________________
уволен в запас!!!
Ответить с цитированием