Hola.
Aquí te envío un ejemplo de la captura del evento "Receivedata" del componente por si te sirve.
Código Delphi
[-]
procedure TFormularioVentasTactil.PesoReceiveData(Sender: TObject;
DataPtr: Pointer; DataSize: Cardinal);
var
iLastLine, i: integer;
s, ss: string;
begin
s := StringOfChar(' ', DataSize);
Move(DataPtr^, pchar(s)^, DataSize);
while Pos(#0, s) > 0 do
Delete(s, pos( #0, s ), 1);
if (s = '') then begin
Exit;
end;
if (Pos('0000000',s) = 1) and (Not Pesamos) then exit;
if Pos('0000000',s)=1 then
Pesamos:=False
else
Pesamos:=True;
i := pos( #10, s );
while i <> 0 do begin
delete( s, i, 1 );
i := pos( #10, s );
end;
iLastLine := NTMemo1.Lines.Count-1;
if iLastLine = -1 then begin
i := pos( #10, s );
while i <> 0 do begin
delete( s, i, 1 );
i := pos( #10, s );
end;
i := pos( #13, s );
while i <> 0 do begin
ss := copy( s, 1, i-1 );
delete( s, 1, i );
NTMemo1.Lines.Append( ss );
i := pos( #13, s );
end;
NTMemo1.Lines.Append( s );
end else begin
s := NTMemo1.Lines[iLastLine] + s;
i := pos( #13, s );
while i <> 0 do begin
ss := copy( s, 1, i-1 );
delete( s, 1, i );
if iLastLine <> -1 then begin
NTMemo1.Lines[iLastLine] := ss;
iLastLine := -1;
end else begin
NTMemo1.Lines.Append( ss );
end;
if ss<>'0000000' then begin
MiVenta.CambiaModoEdit(tEntradaDatos);
NtEditTotal.TomaValor(ss);
end else begin
Miventa.CambiaModoEdit(tPresentaTotal);
end;
i := pos( #13, s );
end;
if iLastLine <> -1 then
NTMemo1.Lines[iLastLine] := s
else
NTMemo1.Lines.Append( s );
end;
end;
Saludos