Hola fedelphi, yo no he podido reproducir el problema que comentas. Si utilizo el siguinete codigo:
Código Delphi
[-]
var
aux:string;
numero:int64;
begin
aux:= '87654';
numero:=strtoint64(aux);
ShowMessage(IntToStr(numero));
El numero que se muestra es 87654, el numero correcto.
De todas formas, si solo quieres hacer comparaciones con los números, no hace falta que los conviertas. Se pueden comparar directamente dos números en formato de texto, solo tienes que asegurarte de que tienen el mismo número de cifras, añadiendo ceros a la izquierda si es necesario.
Por ejemplo:
Código Delphi
[-]
function Comparar(i,j: String): Integer;
begin
while Length(i) > Length(j) do
j:= '0' + j;
while Length(j) > Length(i) do
i:= '0' + i;
Result:= StrComp(PChar(i),PChar(j));
end;
var
S1, S2: String;
begin
S1:= '1236560';
S2:= '123556';
if Comparar(S1,S2) > 0 then
ShowMessage('S1 es mayor que S2')
else
ShowMessage('S2 es mayor o igual que S1');
end;