Qué tal ecfisa, tu código resulta muy cómo la verdad. Creo que sería interesante poder crear un módulo para poder insertarlo en el proyecto y de esta forma, si hay que recurrir varias veces a realizar dicha comprobación, ahorrarnos algo de código.... voy a tratar de hacerlo para exponerlo aquí. Espero, que me des permiso para usar tu código como ejemplo.
Por cierto, creo que se te olvidó poner el signo <= en la condición del bucle for que he resaltado en tu código. Si sólo ponemos < el bucle no recorrería la cadena String al completo, le faltaría el último carácter, ¿no?
Código:
/* Verificar nombre */
bool isValidName(String str) {
if (str == "" || (str[1]>='0'&&str[1]<='9'))
return false;
for(int i=1; i<=str.Length(); i++) {
char c = UpCase(str[i]);
if(!((c>='A'&&c<='Z') || (c>='0'&&c<='9') || (c=='_')))
return false;
}
return true;
}
PD: Hay que ver que aún no le he cogido el truco a la opción de citar... se descuadra todo el codigo, jajajaja