Eso es lo que ejecuta el formulario de la DLL :
Código Delphi
[-]
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
Str : String;
Cadena: AnsiString;
numCad : integer;
CC : integer;
begin
Str := '';
numCad := ComPort1.Buffer.ComPort.InputCount;
Comport1.Buffer.ComPort.ReadStr(Str,numCad);
Cadena := DepurarCadena(Str);
xCedula := trim(copy(Cadena,50,10));
CC := strtoint(xCedula);
xCedula := inttostr(CC);
xPrimerNombre := trim(copy(Cadena,105,10));
xSegundoNombre := trim(copy(Cadena,128,10));
xPrimerApellido := trim(copy(Cadena,60,23));
xSegudoApellido := trim(copy(Cadena,82,23));
Close;
end;
El evento ComPort1RxChar es que se ejecuta cuando disparamos el lector de codigos de barra.
Hago una correccion al mensaje inicial, la Dll tiene el mismo comportamiento en la aplicación desarrollada en delphi 2010 y 2006. Lo que sucedia era que la aplicación donde estaba haciendo la prueba (D2010) tiene un timer y este disparaba un envento cada 5 milisegundos.