SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: Trena en Miércoles 25 de Octubre de 2006, 18:29

Título: Ayuda Con Un Tedit
Publicado por: Trena en Miércoles 25 de Octubre de 2006, 18:29
Para los programadores habituales debe ser muy facil, pero llevo 3 horas con 1 linea de codigo y estoy harto.
Necesito coger de un TEdit el numero que introduzca el usuario, pero como mi variable numero es entero y lo que hay en Edit es "caracter" no puedo convertirlo, he probado con ToInt, tambien con StrToInt.
numero=Edit->Text->Caption;
No se como se hace pero me imagino que es sencillo, si alguien me ayuda se lo agradezco, lo necesito arreglar urgente para mañana.
Un saludo a todos.
Título: Re: Ayuda Con Un Tedit
Publicado por: Linspire en Miércoles 25 de Octubre de 2006, 18:59
Primero debes declarar una variable de tipo entero, por ejemplo:

int numero; //variable de tipo entero

numero=Edit1->Text.ToInt(); //Toma el valor del Edit y lo convierte a entero


Eso es todo.
Título: Re: Ayuda Con Un Tedit
Publicado por: Trena en Miércoles 25 de Octubre de 2006, 19:04
Eso que me cuentas funciona, pero mi problema es que por defecto mi programa coge de mi Edit lo que haya en el Inspector de Objetos, entonces antes de que el usuario meta nada, el programa ya coge lo que hay entonces, si no le pongo un numero a Text en el Inspector de objetos no me va.
Para resumir, el programa coge del Edit lo que yo ponga en el Inspector de Objetos en la parte Text, entonces no me va. Porque no se espera a que el usuario meta el numero y lo coja.
Título: Re: Ayuda Con Un Tedit
Publicado por: TRod en Miércoles 25 de Octubre de 2006, 21:55
Investiga como funciona el evento 'onkeypress'.
Igualas a 0 'Key' segun sea el caso.
Título: Re: Ayuda Con Un Tedit
Publicado por: Drache en Jueves 26 de Octubre de 2006, 08:12
Hola, si tu problema es porque tienes un conflicto de formatos en tiempo de ejecución piensa que la solución puede estar en definir un 0 (cero) en el campo de Text antes de compilar.

si eso no te es suficiente, puedes hacer lo que te dijeron anteriormente, usando el metodo OnKeyPress

if (Key == 'CUALQUIER LETRA') Key = 'CERO';

es una manera sencilla de evitar que metan letras en un campo de numeros, pero vamos...  puedes poner un label especificando que es una variable numerica :P

o si el problema es cuando arranca recien el programa, entonces el codigo que metistes para que se haga, ponle un condicional, para que no te ejecute al inicio las que no sean numericas, bueno eso se me ocurre, pero aun nose cual es tu situacion :P

suerte