Programación General > Trucos
Colocar El Separador Decimal
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
[#] Página Siguiente
Ir a la versión completa