![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
чтение из COM порта [D7, WinXP]
suharew © (2006-05-10 19:13:00)Есть Com порт. Пытаюсь прочитать из него данные
Function ReadText: string;
var
d: array[1..40] of Byte;
s: string;
BytesRead:cardinal;
i: Integer;
begin
Result := '';
if not ReadFile(ComPort, d, SizeOf(d), BytesRead, nil) then
begin
{ Raise an exception }
end;
s := '';
for i := 1 to BytesRead do s := s +' '+ inttostr(d[i]);
Result := s;
if trim(s)='' then
form1.Memo2.Lines.add('No data')
else form1.Memo2.Lines.add(s);
end;
Все вроде работает, данные я получаю. Но при чтении программа намертво зависает пока не прочитаю все данные. Как такое можно исправить. подскажите???
tesseract (2006-05-15 11:42:00) [1]см структуру overlapped и используй потоки.
Сергей М. (2006-05-11 09:46:00) [2]см. ReadFileEx()
Anatoly Podgoretsky (2006-05-11 08:56:00) [3]Этот код должнен быть в отдельном потоке
GanibalLector (2006-05-11 01:04:00) [4]посмотри в сторону
SetCommTimeOuts, например