Creo que el valor del checksum siempre se pone como último caracter.
Cuando obtienes el código del lector de código de barras, podrías quitarle el último caracter y buscarlo.
También puedes crear tu el valor del checksum y guardarlo en la tabla de códigos de barra.
El componente tiene una unit para calcular esto.
Código Delphi
[-]
unit bcchksum
...
function CheckSumModulo10(const data:string):string;
var i,fak,sum : Integer;
begin
sum := 0;
fak := Length(data);
for i:=1 to Length(data) do
begin
if (fak mod 2) = 0 then
sum := sum + (StrToInt(data[i])*1)
else
sum := sum + (StrToInt(data[i])*3);
dec(fak);
end;
if (sum mod 10) = 0 then
result := data+'0'
else
result := data+IntToStr(10-(sum mod 10));
end;