![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Lo unico que se me ocurre es lo sgte (algo facil), pero no muy efectivo:
HAcer que edit solo acepte numeros y el punto, poner su propiedad selectall en true y en el evento onexit:
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
|
#2
|
|||
|
|||
|
Como lo hice yo.
Hola de nuevo, te explico como lo hice yo, me llevo mucho tiempo y puede que sea la mejor solución pero a mí me funciona perfectamente. Para empezar puse un Edit y en el Keypress puse los carácteres que se podrían introducir en el Edit, y si no son estos que se introduzca el #0 es decir el carácter null(nada). Hice una función que se llama Activacomas, para activar las comas o desactivarlas (no se pueden escribir dos comas dentro del mismo Edit, ni en el primer carácter).
Código:
procedure TfrmCanvi.edPagatKeyPress(Sender: TObject; var Key: Char); var a: integer; Begin If Activacomes=False then If Not (Key IN ['0'..'9',#8]) then key :=#0 ; If Activacomes=True then Begin If Not (Key IN ['0'..'9',#8,',']) then key := #0; If (Key=',') and (edPagat.Text='') then If Not (Key IN ['0'..'9',#8]) then key :=#0 ; end; end; Código:
function TfrmCanvi.Activacomes: Boolean; var I, cont: Integer; car, copia: String; begin cont:=0; copia:=edPagat.Text; For i:=1 to Length(copia) do Begin car:=copy(copia,i,1); if car=',' then cont:=cont+1; end; If Length(EdPagat.Text)>=5 then cont:=1; if cont>0 then result:=False else result:=True; end; ¡Suerte!.Un saludo: Alfredo.
__________________
"La perseverancia es el camino del éxito" |
|
#3
|
||||
|
||||
|
Saludos,
Antes que todo, Gracias alfredosg19 por tu interes .Me parece ingeniosa esa forma (la utilizare en otro asuntillo que tengo ), pero el usuario tendria que introducir las comas el mismo.Has visto el componetne CurrencyEdit de la LibRx? En realidad me gustaria hacer ese!!. Parece un edit normal, al momento de digitar numeros (1123) y salir del edit este comvierte los numeros en la moneda oficial ($RD1,123.00 Rep. Dom.) que tiene configurada mi pc. Cuando intento modificar el valor del edit, quita el formato que este contiene. Una idea que me viene a la mente ( pero no he usado y no se si se puede) es la de los comentarios de un hilo en la que un campo memo mostraba su data en un grid utilizando Canvas(no se utilizar mucho esto ).Gracias
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
|
#4
|
|||
|
|||
|
Yo tengo el mismo problema para ingresar un simple importe formato 9999999.99.
¿Como puede ser que Delphi no tenga una máscara o componente nativo decente para una función tan elemental, que cualquier lenguaje de bases de datos para DOS lo tenía??? Pensé que lo había y yo no podía encontrarlo (soy nuevito en Delphi), y buscando me encontré con mucha gente en la misma, y con soluciones complicadísimas... ¡¡para un CHOTO ingreso de importes!!! ![]() |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|