Вниз
Скачать: CL | DM;

Такой процедурой вывожу данные из COM порта в Мемо   Найти похожие ветки 

← →
iNew ©   (2002-12-11 09:09) [0]

var LineData:string;
procedure TForm1.VaComm1RxChar(Sender: TObject; Count: Integer);
type
CharBuf = array[0..9999] of Char;
var
Buffer: ^CharBuf; Bytes, P: Integer;
begin
GetMem(Buffer, VaComm1.ReadBufUsed);
try
Fillchar(Buffer^, VAComm1.ReadBufUsed, 0);
Bytes := VaComm1.ReadBuf(Buffer^, Count);
if Bytes <> -1 then
begin
for P := 0 to Bytes - 1 do begin
case Buffer^[P] of
#0, #10,#13:
begin
if LineData<>"" then M2.Lines.Add(LineData);
LineData := "";
end
else
begin
LineData := LineData + CharBuf(Buffer^)[P];
end;
end; //case
end; //for do
end;
Application.ProcessMessages;
finally
FreeMem(Buffer);
end;
end;
Эта процедура есть событие на появление данных, но не могу понять почему данные выводятся в МЕМО с задержкой на одну сторку
P.S Использую набор компонент Async.


← →
apay ©   (2002-12-11 09:22) [1]

все правильно, как прогу пишешь, так она и пашет.
попробуй:

...
case Buffer^[P] of
#0, #10,#13:
if ( M2.Lines.Count > 0 ) and ( M2.Lines[M2.Lines.Count-1] <> "" ) then M2.Lines.Add("");
else begin
if ( M2.Lines.Count = 0 ) then M2.Lines.Add("");
M2.Lines[M2.Lines.Count-1] := M2.Lines[M2.Lines.Count-1] + CharBuf(Buffer^)[P];
end;
end; //case
...


← →
iNew ©   (2002-12-11 09:31) [2]

Всё работает, но получается как-то глючно:
Очень медлено и МЕМО весь мигает при добавлении.


← →
iNew ©   (2002-12-11 10:55) [3]

А ещё варианты?


← →
iNew ©   (2002-12-15 04:53) [4]

Ну ещё кто-нибудь?


← →
Slym   (2002-12-15 06:31) [5]

Ты в мемо сразу не пихай данные: сначала в локальную переменную типа TStringList, а уже потом перед концом процедуры вываливай накопленную инфу


← →
iNew ©   (2002-12-16 06:15) [6]

Ну вместо M2.Lines.Add(LineData) сделал MyList.add(LineData),
а в конце в цикле:
for i:=0 to MyList.Count-1 do
begin
M2.Lines.Add(MyList.Strings[i]);
end;
Результат тотже.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
14-86079
Кокандокало
2002-12-06 14:35
2002.12.26
Чем сжимать программы на дельфи ?


14-86145
RV
2002-12-05 10:48
2002.12.26
Задачка :)


3-85854
sers
2002-12-06 14:42
2002.12.26
Фильтрация по вычисляемому полю


3-85868
boozer
2002-12-08 16:12
2002.12.26
Не могу разобраться с компонентом DBComboBox


1-85941
tv
2002-12-17 16:44
2002.12.26
Меню автозавершения строк в Code Editor




   Наверх