Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/03/2005, 02:17
Avatar de Eternal Idol
Eternal Idol
 
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
isalpha es una funcion de ANSI C pero con eso estas haciendo una comprobacion sobre el primer byte de la direccion de un puntero, ya que Edit->Text.c_str() te devuelve un puntero de char.

Proba asi:
Código:
if (esNumero(Edit1->Text.c_str()))
{
  MessageBox(0, "Resultado", "Es un numero", 0);
}
else
{
  MessageBox(0, "Resultado", "No es un numero", 0);
}

//str = cadena de caracteres terminada en 0 (lo normal)
bool esNumero(char *str)
{
  for (;*str;str++)
  {
    if (!isalpha(*str))
    {
      return false;
    }
  }
  return true;
}
Tambien le podrias agregar una comprobacion para que se salte caracteres que te parezcan validos y especialmente una funcion para que quite todos los espacios (y tabulaciones) tanto delante como detras de la cadena ej. " 456 " me parece que deberia ser un numero valido. Podes usar isdigit para comprobar que sea un numero.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO