Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

edit sólo números ¿cómo?

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: edit sólo números ¿cómo? Responder citando

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 Very Happy
Volver arriba
Mensaje    Asunto: Responder citando

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..
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Edit solo con numeros. Responder citando

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<5Cool) ? 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
Mensaje    Asunto: Envio el codigo de nuevo... Responder citando

Código:
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
   Key=((Key>47) && (Key<58)) ? Key : 0;
}
Volver arriba
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

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..
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

O sea... que una persona que comete faltas escribiendo ya no puede generar grandes programas no? Shocked , 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 Cool .
_________________
¡ADELANTE CON ESTE SUPER FORO!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

No es por complicar las cosas pero, y si usas un mask edit?
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

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)
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

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!!
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

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
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.