PDA

Ver la Versión Completa : Formato numeros reales


Zucra
05-04-2012, 21:51:40
Tengo un programa en el cual hay unos Edits, donde debo ingresar numeros con coma (numeros reales)
Al ingresar el numero, para separar la parte real de la imaginaria, tengo que separarlos con una coma (,) Ejemplo: 2,14
Si pongo un punto (.) en lugar de una coma, me da error.

Quisiera saber si hay alguna forma de que me tome el numero separandolo con un punto, ya que al usar el Teclado numerico, es mas comodo.

Gracias

Caral
05-04-2012, 22:00:02
Hola
Eso se hace en el panel de control, opciones regionales, ahi se define los decimales con coma o punto, se acepta y se reinicia windows.
Saludos

ecfisa
05-04-2012, 22:17:08
Hola.

También podrías usar esto en los eventos OnEnter y OnExit de los edits.

procedure TForm1.EditEnter(Sender: TObject);
begin
Decimalseparator:= '.';
end;

procedure TForm1.EditExit(Sender: TObject);
begin
Decimalseparator:= ',';
end;


Pero creo que la opción más simple es asociár esto a los eventos OnKeyPress de los edits:

procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
begin
if Key in ['.',','] then
Key:= Decimalseparator;
end;


Saludos.

Enan0
05-04-2012, 22:53:22
Hola Zucra, delphi por defecto carga las variables de sistema y son accesibles (y modificables, solo para tiempo de ejecución)



DecimalSeparator
ThousandSeparator



Por lo que deberias evaluar que es lo presiono el Usuario y reemplazarlo por el que corresponda.


saludos

Enan0
05-04-2012, 22:54:11
Bue.. me quede colgado con la Respuesta abierta veo que ecfisa ya respondio y de manera mas clara.

se pueden borrar estos ..

ecfisa
05-04-2012, 23:38:55
se pueden borrar estos ..

En absoluto, agregaste una mención a la variable ThousandSeparator que puede serle de utilidad. ;)

Saludos. :)

Zucra
11-04-2012, 19:14:57
Bueno, muchas gracias a todos por responder. Me fue muy util y pude solucionarlo gracias ;)

Delphius
12-04-2012, 03:11:25
Tengo un programa en el cual hay unos Edits, donde debo ingresar numeros con coma (numeros reales)
Al ingresar el numero, para separar la parte real de la imaginaria, tengo que separarlos con una coma (,) Ejemplo: 2,14
Si pongo un punto (.) en lugar de una coma, me da error.

Debo de tener muy oxidada la teoría de matemática y se han cambiado las cosas porque que yo sepa un número real no tiene componente imaginaria. La clase de números que tiene dos componentes, una real y otra imaginaria son los números complejos (http://es.wikipedia.org/wiki/N%C3%BAmero_complejo). :rolleyes: Al menos así era la teoría hasta que terminé la cátedra de electrotecnia que fue la última vez que "toqué" un número complejo... allá por el año 2005. :D

Asi que allí va mi pregunta: ¿Tienes un número real y quieres identificar la "parte" decimal de la "parte" entera? ¿O bien, en realidad (ya párenle con los reales :D ) tienes un número complejo y se debe asumir que lo que esté a la izquierda de la coma se interprete como el componente real y lo que esté a la derecha como el componente imaginario.?

Saludos,

Zucra
15-05-2012, 10:21:01
Debo de tener muy oxidada la teoría de matemática y se han cambiado las cosas porque que yo sepa un número real no tiene componente imaginaria. La clase de números que tiene dos componentes, una real y otra imaginaria son los números

BUeno, perdon por tardar tanto en responder, es que ya habia logrado solucionar mi problema.
De todas formas, te respondo, y si, tenes toda la razon, me exprese muy mal. Seria parte entera y parte decimal. No se que me llevo a ese error, quiza el sueño del momento. Pido perdon. Gracias por responder.