Val (cadena, variable, resultado);
donde:
cadena:=cadena que contiene el valor que deseamos saber si es numero o no
variable:=Variable donde se almacenara el resultado de la conversion de cadena (si es que es numero)
resultado:=devuelve 0 si la conversion fue exitosa de lo contrario devuelve otro valor.
Ejemplo
var
valor,devolucion:integer;
cadena:string;
begin
cadena:='300';
val(cadena,valor,devolucion);
if (devolucion<>0)then
messagedlg('No es numero',mtinformation,[mbyes],0)
else
messagedlg('Si es numero',mtinformation,[mbyes],0)
ESO ES PARA LOS NUMEROS ENTEROS, SI, POR EJEMPLO EN VAL TU TIENES UNA CADENA QUE CONTENGA PTO DECIMAL '300.5' TE DIRA QUE NO ES UN NUMERO PORQUE LA VARIABLE DONDE QUIERES ALMACENAR EL RESULTADO ES ENTERA, EN CASO DE QUE QUIERAS EVALUAR SI ES UN NUMERO ENTERO O REAL, LA VARIABLE DONDE QUIERES ALMACENAR EL RESULTADO EN ESTE CASO "VALOR" , DEBE SER DE TIPO FLOAT TAMBIEN.