Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Separador de miles como separador decimal (https://www.clubdelphi.com/foros/showthread.php?t=8649)

jmselesan 29-03-2004 13:43:07

Separador de miles como separador decimal
 
Hola a todos. Lo que quiero hacer es lo siguiente: en un DBGrid, cuando el usuario está editando un campo numérico, quiero que cuando presiona la tecla "." del teclado númerico, funcione como si hubiera presionado el separador decimal, sin importar cual sea la configuracion regional, tal como lo hace Excel.

Espero puedan ayudarme.

Gracias
José

Nuria 29-03-2004 13:57:43

Hola!

Te podías crear una función que cuando pulsaras una tecla de un campo numérico la llamaras:

Código:

function fSepDecimal(tecla: char) : char;
begin
  if DECIMALSEPARATOR = ',' then begin
    if tecla = '.' then Result:= ','
    else Result := tecla;
  end
  else begin
    if tecla = ',' then Result:= '.'
    else Result := tecla;
  end;
end;

La llamarías de esta forma:
Código:

key := fSepDecimal(key);
Espero que te sirva.

Saludos!

__cadetill 29-03-2004 16:47:43

Ampliando algo la respuesta de Nuria (muy buena, por cierto)

Código:

if DBGrid1.SelectedField.DataType in [ftFloat, ftCurrency, ftBCD] then
    key := fSepDecimal(key);

Podiendo poner el tipo de datos que quieras controlar

Nuria 29-03-2004 16:57:51

Cita:

Empezado por cadetill
Ampliando algo la respuesta de Nuria (muy buena, por cierto)

;) Assias, viniendo de quien viene todo un cumplido :) , eso es porque tengo buenos maestros... :p

ingabraham 12-06-2011 22:21:54

Cita:

Empezado por aciram (Mensaje 35964)
Ampliando algo la respuesta de Nuria (muy buena, por cierto)

Código:

if DBGrid1.SelectedField.DataType in [ftFloat, ftCurrency, ftBCD] then
    key := fSepDecimal(key);

Podiendo poner el tipo de datos que quieras controlar

no me reconoce estos formatos x q
[ftFloat, ftCurrency, ftBCD]


La franja horaria es GMT +2. Ahora son las 15:37:07.

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