Programación General > Trucos

 Colocar El Separador Decimal

(1/2) > >>

Ayla:
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 --- 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;    
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 --- procedure Tform.DBEditKeyPress(Sender: TObject; var Key: Char);begin  key := fSepDecimal(key);end;  

lopman:
Sencillo pero eficaz, gracias por el truco, me ha venido muy bien.

bartolomeo:
Esta Rebueno, tres urras para Ayla.

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

lopman:
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 --- function TFormPatrones.fSepDecimal(tecla: char) : char;var  res: char;begin res := tecla; if DECIMALSEPARATOR = ',' then begin    if tecla = '.' then res:= ','    else res := tecla; end else begin    if tecla = ',' then res:= '.'    else res := tecla; end; if not (res in ['0'..'9',DECIMALSEPARATOR,#8]) then    res := #0; Result := res;end;  
De esta forma tan solo nos dejará escribir números, separadores, desplazarnos por el TEdit y borrar elementos.

bartolomeo:
De fabula llevaba buscando uno de esos hace rato

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa