 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
rod Invitado
|
Publicado: Vie 16 Abr, 2004 9:40 am Asunto: edit sólo números ¿cómo? |
|
|
holita, toy haciendo un programa en el que el usuario debe introducir números y sólo números (float) en un edit. ¿Qué hacer para que si mete algo que no sea un float muestre mensaje de error? Me he quedado bloqueado y no sé salir. Confío en vuestras mentes.
Muchisísimas gracias.
Rod  |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Vie 16 Abr, 2004 10:26 am Asunto: |
|
|
pues "a olita ta´mo haciendo otos trabajos", cuando preguntes de manera correcta, se te respondera, no es personal, pero no creo que una persona que hable con palabras cortas, pueda generar grandes programas.
por si te sirve busca, el evento OnKeyPress, del Edit. y Verifica el Contindo de Key, al igual, te podria poner el codig.. pero "aolita toy haciendo ota cosa"
"sauos",
pd: No es Personal, pero no me agrada esta forma de hablar.. _________________
 |
|
| Volver arriba |
|
 |
Invitado Invitado
|
Publicado: Vie 16 Abr, 2004 1:22 pm Asunto: Edit solo con numeros. |
|
|
No te preocupes Rod, yo te he entendido a la primera, y si realmente tuviera algo importante que hacer, no perdería el tiempo en contestarte para no darte respuesta...
Y no es la primera respuesta fuera de tono que veo de esta persona...
Para que el Edit solo acepte números, debes de programar el evento OnKeyPress con el siguiente código:
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
Key=((Key>47) && (Key<5 ) ? Key : 0;
}
Recuerda que para programar este evento debes de clickar en la pestaña de ‘Events’, buscar el evento ‘OnKeyPress’ y hacer doble click en la casilla derecha.
Espero que la respuesta esté a la altura de este foro...
Nota: He pasado este texto por el corrector ortográfico para no ofender a nadie. |
|
| Volver arriba |
|
 |
Invitado Invitado
|
Publicado: Vie 16 Abr, 2004 1:25 pm Asunto: Envio el codigo de nuevo... |
|
|
| Código: | void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
Key=((Key>47) && (Key<58)) ? Key : 0;
} |
|
|
| Volver arriba |
|
 |
LordNemesis Master


Registrado: 31 Dic 2003Mensajes: 340Ubicación: México
|
Publicado: Vie 16 Abr, 2004 4:19 pm Asunto: |
|
|
Saludos !
La respuest anterior wque te dieron esta muy bien, funciona, pero si te fijas no te funcionaria para flotantes puesto que n te va a dejar capturar puntos decimales; y de paso te daras cuenbta que tampoco te va a decjar borrar con Back space que es la tecla mas comun....
Mas o menos asi:
| Código: |
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
Key=(((Key>47) && (Key<58))||(Key==46)||(Key==8)) ? Key : 0;
}
|
Espero te sirva, saludos.... _________________ Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!! |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Vie 16 Abr, 2004 5:35 pm Asunto: |
|
|
Bueno para que no se hable mas.. y mal. te pongo el codigo que utlizó, para el manejo de los Edits,
| Código: |
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
// para compatibilad con españa, mexico
// 48/57 num 0/9 punto(.) coma (,) retroceso
if((Key>=48 && Key<=57) || Key==46 || Key==44 || Key==8)
Key = Key;
else{
if(Key==VK_RETURN){
Perform(WM_NEXTDLGCTL, 0, 0);
}else{
MessageBeep(0xFFFFFFFF);
}
Key=0;
}
} |
Puedes manejar el Enter, las flechas, inicio, fin, etc, para que no se hable mas.. _________________
 |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Vie 16 Abr, 2004 10:44 pm Asunto: |
|
|
O sea... que una persona que comete faltas escribiendo ya no puede generar grandes programas no? , vaya... vaya... vaya.... tenemos entre nosotros un "Don Perfecto" o tal vez un "Yo no me equivoco nunca". Yo voto por ser más modestos y menos criticones porque todos tenemos nuestros defectos y faltas involuntarias. Que no se me ofenda nadie por favor . _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
ikis Master


Registrado: 28 Dic 2002Mensajes: 703Ubicación: Madrid, España
|
Publicado: Vie 16 Abr, 2004 11:34 pm Asunto: |
|
|
| No es por complicar las cosas pero, y si usas un mask edit? |
|
| Volver arriba |
|
 |
Fabalv Cdt


Registrado: 08 Ene 2004Mensajes: 23Ubicación: Autlán de Navarro, Jalisco, México
|
Publicado: Sab 17 Abr, 2004 1:07 am Asunto: |
|
|
Pues yo opino que usar un mask-edit será más sencillo que escribir código para el evento, aunque cualquiera de las soluciones es buena.
Además, no creemos polemica, dejemos el foro para la programación, por favor. _________________ Mientras mas errores cometa hoy, menos me equivocaré mañana. |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Sab 17 Abr, 2004 2:49 am Asunto: |
|
|
| Cita: |
O sea... que una persona que comete faltas escribiendo ya no puede generar grandes programas no? , vaya... vaya... vaya.... tenemos entre nosotros un "Don Perfecto" o tal vez un "Yo no me equivoco nunca". Yo voto por ser más modestos y menos criticones porque todos tenemos nuestros defectos y faltas involuntarias
| Código: |
Nadie ha dicho nada, es mas fui yo quien lo puso., el foro es de programación es correcto, yo lo unico que dije, y talvez por la forma de expresarme de manera literal..
|
no creo que una persona que hable con palabras cortas, pueda generar grandes programas...
|
la palabra no creo, queda a discusion.. puede ser comprobado, por la persona que quiera que es muy diferente el concepto Micro-Write, a pocas palabras..., y si es mucha la molestia, expreso una disculpa. pero es no me quita, que me moleste la forma de hablar, tal y como si fuera un chat de internet, a eso fue lo que me referia.. y exacto nos dediquemos al foro, que es lo que cuenta.. al igual puedo necesitar ayuda.. y buscarla aqui o no.., y alguien mas lo dijo que de sobra es el Nombre, "yo busco la informacion por otra parte..", ya sabran a quien me refiero.. (_LEO) _________________
 |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Sab 17 Abr, 2004 3:00 am Asunto: |
|
|
Bueno, mas facil.. lo siento.. pero es mi forma de sentir, lo que expresé, eso no significa , que no sigamos colaborando, y espero al igual, requerir tu ayuda TUGUI, para que contestes igual. y con eso te desquitas.. mientras tanto, voy a seguir contestando respuestas de este foro, que tanto me ha ayudado...
y por ahi vi,
| Cita: |
Y no es la primera respuesta fuera de tono que veo de esta persona... |
gracias, eso significa que todos los posts, son tomados en cuenta.
saludos y sigamos con lo que mejor sabemos hacer, (Programar en c++ builder), y dejemos de "chismosear" post, que en lugar de ayudar interfieren, con esto, Vaya, con que no me hubieran echo caso, y hubieran puesto la respuesta, es mas que suficiente...
no creen!! _________________
 |
|
| Volver arriba |
|
 |
rod Invitado
|
Publicado: Dom 18 Abr, 2004 11:18 am Asunto: |
|
|
Muchas gracias Lord Nemesis.
Soy nuevo en el mundo del Builder y la verdad que soy aún bastante torpe. Ahora mismo pruebo tu sugerencia. Seguro que me vale.
Un saludo para México. |
|
| Volver arriba |
|
 |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
Publicado: Lun 19 Abr, 2004 2:46 pm Asunto: |
|
|
Yo lo haria de esta manera
en cualquier TEDIT
en el evento OnExit
| Código: |
try { StrToFloat(TuEdit->Text); } catch(...) { tuEdit->Text="0"; }
|
_________________ Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc
http://www.touchsoftwares.com |
|
| Volver arriba |
|
 |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
Publicado: Lun 19 Abr, 2004 2:51 pm Asunto: |
|
|
No coloque comentarios sobre mi respueta anterior:
Aqui el chiste es que NO M EIMPORTA lo que ponga el usuario, si el coloca letras el codigo valida que sea un numero flotante el que debe ir y si no e s asi coloca 0, se podria agreagr en el catch un TuEdit->SetFocus() para regresar el foco del sistema a el control acompañandolo de una ShowMessage("SOLO NUMEROS") para que elusuario coloque numoer o mas aun
crear un control en base a un TMaskedEdit que capture llos numeros, los despliegue con formato FloatToSTrF(.. y que guarde el valor numero en una propiedad adicional flotante "Numero" _________________ Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc
http://www.touchsoftwares.com |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|