Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Existe el procedimiento perfecto? (https://www.clubdelphi.com/foros/showthread.php?t=15072)

jam888 08-10-2004 20:34:41

Existe el procedimiento perfecto?
 
Queridos amigos del foro,les cuento que he probado de todo, he revisado durante tres horas el foro y no encuentro un procedimiento perfecto para que una cajita de texto no permita teclear letras, siempre le falta algo, les cuento como comienza mi procedimiento.

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in (#8,'0'..'9','.') then key:=#0;

end;

1º Esto anda a medias ya que permite cargar mas de un punto y no quiero que se cargue mas de un punto si no da error (en el futuro si encuentro solucion hare un procedimiento para cargar unicamente valores enteros)

2º Permite que el usuario pueda desplazarse con la flecha hacia la izquierda y luego borre algo que no quiero(es por eso que incluyo la tecla bakspace para borrar en la condicion)

3º Permite que se peguen letras desde el portapapeles, algo que tampoco quiero que haga.

Lo ideal seria que el usuario al presionar una tecla diferente de (0.1.2.3.4.5.6.7.8.9 la tecla backspace y el punto) aparesca un mensaje que diga (caracter invalido) lo mismo si carga el punto dos veces.

Espero que alguien tenga la solucion a este problema.

mamcx 08-10-2004 20:52:19

Porque usas un edit simple? Prueba con el TMaskEdit, o si es para editar una tabla, al hacer el binding a un campo numerico es automatico. Las librerias de JVCL, Orpheous, TMS Software, etc... vienen con editores especiales para numeros y monedas. Si el asunto es por plata, la de JVCL y Orpheous son gratis.

No reinventes la rueda, que esta rueda esta hecha !

luisdevis 09-10-2004 00:40:43

Lo que dice mamcx es cierto.
De todas formas, si tienes algún problema con los Tmakedits puedes hacer lo siguiente.

Utiliza el evento OnChange.
Cada vez que el contenido del TextBox cambie puedes revisarlo y eliminar los caracteres que no te interesen dejando sólo los que quieres.

Cuidado, asigna el valor del textbox a una variable y juega con ella antes de volver a asignarle el valor final bueno al textbox otra vez.


La franja horaria es GMT +2. Ahora son las 04:24:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi