![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
No estoy muy seguro de entenderte...
Con lo que te he pasado evitas: - Que se introduzcan letras o espacios o cualquier cosa que no sea un número o el DecimalSeparator. - No permite que la primera sea una coma (o el separador decimal que sea) - No permite más de una coma (o el separador decimal que sea) Puede que tú problema (si me he enterado) esté en esa cuenta que haces según se introducen los dígitos... y sobre todo en el momento en el que el usuario inserta la coma... ¿Y si, cuando haces esa cuenta, si la última es la coma no la "obvias"? Me explico (estoy espeso): si cuando vas a hacer la cuenta, el número introducido es, por ejemplo, "12334,"... Quítale la "," y usa "12334" para la operación ¿Es eso?
__________________
La violencia es el último recurso del incompetente. (Salvor Hardin) |
|
#2
|
|||
|
|||
|
Gracias Ohcan, pero...
Gracias Ohcan por tu ayuda, a ver el problema está en que me da error y no podido si quiera ver si lo que me dijiste funciona (que seguro que sí, quiero decir que no lo he podido probar), el fallo es que algo falta en la función y me dice esto:
[Error] UFRMCanvi.pas(111): Not enough actual parameters
__________________
"La perseverancia es el camino del éxito" |
|
#3
|
||||
|
||||
|
¡Ah!
![]() Bueno... el error.. ¿en qué línea (dinos el código) te salta? En esa línea debes estar haciendo una llamada a una función o un procedimiento, pero te falta incluir algún/os parámetro/s... O algo por el estilo... ![]()
__________________
La violencia es el último recurso del incompetente. (Salvor Hardin) |
|
#4
|
|||
|
|||
|
Aqui da el error.
El error me da aquí:procedure TfrmCanvi.edPagatKeyPress(Sender: TObject; var Key: Char); begin Key := ComprobarNumerico(EdPagat.Text; Key:Char); Ayyy....
__________________
"La perseverancia es el camino del éxito" |
|
#5
|
||||
|
||||
|
¡Ya lo tengo!
"Mea culpa" te puse en la primera respuesta: A esta funcion la llamas desde el evento onKeyPress del Edit de esta forma: Key := ComprobarNumerico(MiEdit.Text; Key:Char); Y ese ";"... debería ser una coma ","... Así que intenta simplemente Key := ComprobarNumerico(EdPagat.Text, Key:Char); Y me cuentas... yo me marcho hasta mañana ... que ya es hora
__________________
La violencia es el último recurso del incompetente. (Salvor Hardin) |
|
#6
|
|||
|
|||
|
Hola por fin lo solucioné, como puedes ver la solución no era nada complicada pero supongo que son esas cosas fáciles en la que cuesta caer, o mejor dicho a mí me cuesta caer. Primero hago una comprobació para ver si se ha puesto la coma en el TEDit, si ya está escrita quiere decir que no se puede volver a escribir por lo que le doy el valor de false a la función y si no está escrita true.
Cita:
Cita:
Ohran de todas formas muchas gracias por todo, seguramente si te hubiese explicado mejor mi problema me hubieras podido ayudar mejor. Hasta pronto. ![]()
__________________
"La perseverancia es el camino del éxito" |
|
#7
|
|||
|
|||
|
hola a todos,
creo que el problema ya lo teneis solucionado, pero quería mostrar una forma corta de hacerlo En el evento OnKeyPress del campo pongo este procedimiento: Código:
procedure TFTrataResiduos.SoloNumerosYComa(Sender: TObject; var Key: Char);
begin
if Key='.' then Key:=','; //admito el punto para introducir los decimales, pero lo cambio por la coma
if Pos(',',LabeledEdit3.Text)=0 then
if not (Key in ['0'..'9',',',#8]) then Key:=#0 //si no hay una coma, la admito como carácter válido
else Exit
else
if not (Key in ['0'..'9',#8]) then Key:=#0; //si hay alguna coma, ya no admito más
end;
Saludos,
__________________
Rafita. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|