¿Contenido de un textfield a integer en versión 2017?

Recién he empezado a seguir un curso de Xojo. En la versión que utiliza en el video, algunos códigos no son exactamente igual en la versión del 2017, que es con la que cuento. No puedo instalar una versión más reciente de la aplicación ni actualizar mi equipo más allá de la versión 10.13.3 de Mac High Sierra.

Se utiliza un Text Field para introducir el año de nacimiento y un botón para calcular la edad. La dificultad que experimento es el asunto de los tipos de datos. El Text Field es una cadena y la variable que se declara (varAñoNacimiento) es de tipo Integer.

El utiliza: varAñoNacimiento = txtAñoNacimiento.Value.ToInteger
para convertir la cadena a Integer.

En mi caso, .ToInteger no es valido para esta versión (2017). Tampoco la propiedad .Value del Text Field, tengo que cambiarla por .Text

Buscando por Google, se me ocurrió probar esto:

varAñoNacimiento = Integer.FromText(txtAñoNacimiento.Text)

Pero tampoco es válido. ¿Alguien me echa una manita? Llevo todo el día buscando una solución sin lograr avanzar.
Gracias de antemano y saludos.

Hello,
make sure any tutorials you find to study are API 1 because the one you are following is API 2

1 Like

Hola, Rubén.

Utiliza la función Val(“cadena de texto”) para convertir un string en un número.

Un saludo,
Óscar.

1 Like

Al parecer el tutorial que estás siguiendo fue realizado cuando se cambió el TextField.Text a TextField.Value, desde la versión 2020r2 se regresó a TextField.Text y ya no se recomienda usar TextField.Value

Debes configurar tu versión de Xojo para tener la ayuda de los documentos que se incluyen con tu versión (ayuda local) y no buscar los documentos en línea del sitio de Xojo ya que esos están actualizados a las versiones nuevas. Así puedes ver las opciones que se tienen para la versión 2017.

me imagino que te marcó error de que esperaba Text pero recibió String, ¿verdad?, lo acabo de probar con la versión Xojo2018R3 que tengo instalada, lo que pasa es que txtAñoNacimiento.Text es un String, así que tendrías que usar .ToText para convertir ese String en Text y poder usar Integer.FromText

varAñoNacimiento = Integer.FromText(txtAñoNacimiento.Text.ToText)

debe de funcionar.

1 Like

Como menciona Oscar. Debe de funcionar con VAL.
En las versiones anteriores de XOJO, se usaba mucho las funciones.

Tu código quedaría así:
varAñoNacimiento = VAL(txtAñoNacimiento.Text.ToText)

1 Like

Genial, ha funcionado perfectamente. Muchas gracias por vuestras respuestas.
Estoy intentando usar Parallels Desktop con una versión más reciente del sistema y Xojo 2021. Va relativamente bien, pero solo recomienda comandos y completa con el tabulador cuando quiere. A veces es muy útil poner un punto y pulsar el tabulador para que muestre las diferentes opciones que se pueden usar, en cambio solo lo hace cuando quiere. No se, a ver que se me ocurre.
Saludos y gracias a todos por vuestras soluciones.
Quizás opte más bien por Val, probaré ambos métodos.