• Viernes 29 de Marzo de 2024, 10:30

Autor Tema:  Colocar El Separador Decimal  (Leído 4970 veces)

Ayla

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
    • http://www.clubdevelopers.com/foros/index.php
Colocar El Separador Decimal
« en: Jueves 30 de Junio de 2005, 18:37 »
0
Muchas veces no sabemos que separación decimal tiene la máquina en que va a correr nuestra aplicación. Con esta función, tenemos solucionado el problema:

Código: Text
  1.  
  2. function fSepDecimal(tecla: char) : char;
  3. begin
  4.   if DECIMALSEPARATOR = ',' then begin
  5.      if tecla = '.' then Result:= ','
  6.      else Result := tecla;
  7.   end
  8.   else begin
  9.      if tecla = ',' then Result:= '.'
  10.      else Result := tecla;
  11.   end;
  12. end;  
  13.  
  14.  

Sólo tenemos que llamar a la función en OnKeyPress de cualquier componente en el que vayamos a utilizar decimales. Por ejemplo, en un TDBEdit:

Código: Text
  1.  
  2. procedure Tform.DBEditKeyPress(Sender: TObject; var Key: Char);
  3. begin
  4.   key := fSepDecimal(key);
  5. end;
  6.  
  7.  
Y que mi luz te acompañe
pues la vida es un jardín
donde lo bueno y lo malo
se confunde y es humano
no siempre saber elegir.

Ayla Blog

lopman

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
    • http://gafootas.blogspot.com
Re: Colocar El Separador Decimal
« Respuesta #1 en: Jueves 18 de Agosto de 2005, 14:46 »
0
Sencillo pero eficaz, gracias por el truco, me ha venido muy bien.

bartolomeo

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
Re: Colocar El Separador Decimal
« Respuesta #2 en: Jueves 18 de Agosto de 2005, 15:07 »
0
Esta Rebueno, tres urras para Ayla.

hip hip Urra  ;)  hip hip Urra  :P  hip hip Urraaaaaa  :devil:

[size=109]Por que Rolo soy yo¡¡¡¡¡[/size]

lopman

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
    • http://gafootas.blogspot.com
Re: Colocar El Separador Decimal
« Respuesta #3 en: Lunes 22 de Agosto de 2005, 13:50 »
0
Como ampliación al práctico truco obsequio de Ayla, podemos terminar de convertir el TEdit en un campo numérico únicamente. Con lo cual ampliariamos su función del siguiente modo:
Código: Text
  1.  
  2. function TFormPatrones.fSepDecimal(tecla: char) : char;
  3. var
  4.   res: char;
  5. begin
  6.  res := tecla;
  7.  if DECIMALSEPARATOR = ',' then begin
  8.     if tecla = '.' then res:= ','
  9.     else res := tecla;
  10.  end
  11.  else begin
  12.     if tecla = ',' then res:= '.'
  13.     else res := tecla;
  14.  end;
  15.  if not (res in ['0'..'9',DECIMALSEPARATOR,#8]) then
  16.     res := #0;
  17.  Result := res;
  18. end;
  19.  
  20.  

De esta forma tan solo nos dejará escribir números, separadores, desplazarnos por el TEdit y borrar elementos.

bartolomeo

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
Re: Colocar El Separador Decimal
« Respuesta #4 en: Lunes 22 de Agosto de 2005, 17:26 »
0
De fabula llevaba buscando uno de esos hace rato

[size=109]Por que Rolo soy yo¡¡¡¡¡[/size]

Ayla

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
    • http://www.clubdevelopers.com/foros/index.php
Re: Colocar El Separador Decimal
« Respuesta #5 en: Jueves 25 de Agosto de 2005, 13:00 »
0
Assias Lopman por ampliar el truquillo.

 Aunque existen componentes (como algunos que vienes en las Rx) que sólo te dejan meter numeros  :rolleyes: .
 
 De todas maneras tomo nota  ;) .
Y que mi luz te acompañe
pues la vida es un jardín
donde lo bueno y lo malo
se confunde y es humano
no siempre saber elegir.

Ayla Blog