Hola a todos, verán soy nuevo en esto de programar con delphi pascal, por lo que me acerco a ustedes con un problema.
Tengo un programa que tiene hechas funciones para el conteo y obtención de los valores de una cadena, pero el problema es que no me reconoce el símbolo de % como separador entre las partes de dicha cadena.
Les dejo el código para ver si alguien me puede ayudar a identificar el error que tengo y lograr que lo reconozca como un carácter para separar los valores.

Funciones utilizadas:
Código Delphi
[-]
function EsStrunNumero(NumStr : string) : bool;
begin
result := true;
try
StrToInt(NumStr);
except
result := false;
end;
end;
function GetToken(Cadena:string; Separador:char; Token:integer):string; overload
var
Posicion:integer;
begin
while Token > 1 do begin
Delete(Cadena,1,Pos(Separador,Cadena));
Dec(Token);
end;
Posicion:=Pos(Separador,Cadena);
if Posicion=0
then result:=cadena
else Result:=Copy(Cadena,1,Posicion-Length(Separador));
end;
function GetTokenCount(Cadena:string; Separador:char):integer; overload;
var
Posicion:integer;
begin
Posicion:=Pos(Separador,Cadena);
Result:=1;
if Cadena <> '' then begin
if Posicion <> 0 then begin
while Posicion <> 0 do
begin
Delete(Cadena,1,Posicion);
Posicion:=Pos(Separador,Cadena);
Inc (Result);
end;
end;
end else Result:=0;
end;

Parte del programa con el conflicto:
Código Delphi
[-]
IF GetTokenCount(texto,'%') = 2 then begin
if (EsStrunNumero(GetToken(texto,'%',1))) and (EsStrunNumero(GetToken(texto,'%',2)))then
begin
idesc:= StrToInt(GetToken(texto,'%',1)); scve:= GetToken(texto,'%',2);
reng:=Fventa.SGVenta.RowCount; importdesc:=StrToFloat(Fventa.SGVenta.Cells[6,reng-1]);
if idesc <> 0 then
begin
Desc:=1-idesc/100; import:=importdesc*Desc;
Fventa.SGVenta.Cells[5,reng-1]:= IntToStr(idesc); end;
end;
end;
Agradezco de antemano el apoyo que dan en este sitio y quedo atento de sus comentarios para resolverlo.

Saludos.
