PDA

Ver la Versión Completa : Coma en teclado numérico


javiermorales
30-07-2003, 08:43:46
Buenos días a todos. Una pregunta rápida. ¿Sabéis qué se debe hacer para que en campos DBEdit con formato numérico Ej: "###,###.00", se pueda introducir la coma con el "." del teclado numérico. Con la coma del teclado alfabético funciona perfectamente.

Gracias. Un saludo.

__cadetill
30-07-2003, 10:09:30
Puedes controlar el OnKeyPress del TDBEdit y, si se pulsa el punto, cambiar el valor por una coma


procedure TForm1.DBEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = '.' then key := ',';
end;



Espero te sirva

javiermorales
30-07-2003, 12:44:08
Gracias Cadetill, voy a probarlo.

De todas maneras, se lo pondré en el formulario padre y lo heredarán todos, pero ¿podría evitar que siempre se sustituya el punto, ya que en algunos campos si que se querrá utilizar el punto (por ejemplo en los que albergan texto)?.

Gracias de nuevo.

andres1569
30-07-2003, 13:01:33
Hola:

Mírate este hilo, donde se trató este mismo tema. La solución consiste en sustituir únicamente el punto cuando se pulsa desde el teclado numérico, y afecta a toda la aplicación, lo cual en la mayoría de los casos será válido:

http://www.clubdelphi.com/foros/showthread.php?threadid=1463

También puedes usar la solución de Cadetill, y si los DBEdits van enlazados a un evento común, hacer la siguiente comprobación:

procedure TForm1.DBEdit1KeyPress(Sender: TObject; var Key: Char);
begin
with TDBEdit(Sender) do
if (key = '.') AND Assigned(Field) AND
(Field.DataType in [ftCurrency, ftFloat]) then
key := ',';
end;

javiermorales
30-07-2003, 13:13:41
Muchas Gracias Andrés. Ha sido muy didáctico. Un saludo.