Bueno, fue muy divertido este asunto y gracias a Delphius por fin se pudo sacar una función muy bonita, asi pues que propongo finalmente este otro ajustecito y listo

...
Código Delphi
[-]
function EsNumero(Numero: string): boolean;
var
Chequeo: integer;
Num: real;
begin
Numero := Trim(Numero);
val(Numero, Num, Chequeo);
result := ((Chequeo = 0) and (Numero[Length(Numero)]<> '.'));
end;