Multiplicacion automatica con edits
Necesito trabajar con decimales en una multiplicación se que los dbedit son .text tipos (string) y que se debe convertir cadena a numero y viceversa para poder trabajarlos y que se muestre el resultado.
Mi cuestión es la siguiente tengo el siguiente código:
// He colocado tres edits y en el ultimo es que se mostrara el resultado de la suma //cuando demos clic
var
n1, n2, suma: integer
begin
suma:= strtoint(edit1.text) + strtoint (edit2.text);
edit3.text:= inttostr (suma);
end;
end.
El resultado se mostrara cuando doy un clic.
Disculpa que lo ilustre lo que pasa es que lo necesito para poder explicarte que es lo que necesito.
Se que dando clic se muestra el resultado, lo que pasa es que necesito que teniendo 4 dbedit el primero es precio (dbedit1), el segundo es descuento (dbedit2) el tercero es impuesto (dbedit3) y el ultimo es precio total (dbedit4) se realize la multiplicación de los tres primeros y se muestren en el cuarto (trabajando con decimales), para después insertar todos los datos en la base de datos que tengo.
Quisiera que me dijeras que función me permite hacer el calculo automáticamente sin tener que usar un botón solamente que vaya ingresando los datos.
Este de aquí abajo es el código que estoy utilizando para hacer los cálculos
con este código que es el que actualmente estoy usando te voy a explicar mejor que es lo que quiero y así podrás explicarme que estoy haciendo mal.
var
precio, descuento, preciototal: currency;
const
impuesto:double= 1.6;
begin
precio:= strtofloat(edit1.text);
descuento:=strtofloat (edit3.text);
preciototal:= (precio*itbis*descuento);
edit4.text:= floattostr (precioTotal);
Realmente hay ciertos tipos en delhi que me confunden, yo no lo estoy trabajando primero en el dbedit sino que lo hice primero en con edits para ver si me salia bien, pero no he tenido los resultados esperados. Primero que todo tengo las variables precio (edit1), impuesto (edit2), descuento(edit3), y el preciototal(edit4), el impuesto lo he establecido como una constante porque quiero agregar un checkbox que lo habilite o lo deshabilite en la multiplicación debido a que no todos los productos llevan impuestos, pero como no me ha salido lo que quiero primero (que es poder mostrar y que se realicen las multiplicaciones) lo he estado pensando para después.
Mi problema actual es que quiero que cuando introduzca un valor en precio como por ejemplo 20 se marque 20.00 donde los ceros marcan los centavos pero con el código obligatoriamente tengo que marcar 20 porque sino me da error, ademas que cuando lo inserte necesito que se visualice al mismo tiempo en preciototal y no lo hace. Ademas lo mismo pasa cuando introduzco el descento solo me permite trabajar con números enteros y no con decimales. Se que estoy perdido y a lo mejor estoy pretendiendo demasiado, me podrías ayudar y aconsejar como podría hacerlo mejor (espero no haberte exigido mucho) (realmente me sentiría bien si me pudieras ayudar con lo que puedas).
Mi cuestión es la siguiente tengo el siguiente código:
// He colocado tres edits y en el ultimo es que se mostrara el resultado de la suma //cuando demos clic
var
n1, n2, suma: integer
begin
suma:= strtoint(edit1.text) + strtoint (edit2.text);
edit3.text:= inttostr (suma);
end;
end.
El resultado se mostrara cuando doy un clic.
Disculpa que lo ilustre lo que pasa es que lo necesito para poder explicarte que es lo que necesito.
Se que dando clic se muestra el resultado, lo que pasa es que necesito que teniendo 4 dbedit el primero es precio (dbedit1), el segundo es descuento (dbedit2) el tercero es impuesto (dbedit3) y el ultimo es precio total (dbedit4) se realize la multiplicación de los tres primeros y se muestren en el cuarto (trabajando con decimales), para después insertar todos los datos en la base de datos que tengo.
Quisiera que me dijeras que función me permite hacer el calculo automáticamente sin tener que usar un botón solamente que vaya ingresando los datos.
Este de aquí abajo es el código que estoy utilizando para hacer los cálculos
con este código que es el que actualmente estoy usando te voy a explicar mejor que es lo que quiero y así podrás explicarme que estoy haciendo mal.
var
precio, descuento, preciototal: currency;
const
impuesto:double= 1.6;
begin
precio:= strtofloat(edit1.text);
descuento:=strtofloat (edit3.text);
preciototal:= (precio*itbis*descuento);
edit4.text:= floattostr (precioTotal);
Realmente hay ciertos tipos en delhi que me confunden, yo no lo estoy trabajando primero en el dbedit sino que lo hice primero en con edits para ver si me salia bien, pero no he tenido los resultados esperados. Primero que todo tengo las variables precio (edit1), impuesto (edit2), descuento(edit3), y el preciototal(edit4), el impuesto lo he establecido como una constante porque quiero agregar un checkbox que lo habilite o lo deshabilite en la multiplicación debido a que no todos los productos llevan impuestos, pero como no me ha salido lo que quiero primero (que es poder mostrar y que se realicen las multiplicaciones) lo he estado pensando para después.
Mi problema actual es que quiero que cuando introduzca un valor en precio como por ejemplo 20 se marque 20.00 donde los ceros marcan los centavos pero con el código obligatoriamente tengo que marcar 20 porque sino me da error, ademas que cuando lo inserte necesito que se visualice al mismo tiempo en preciototal y no lo hace. Ademas lo mismo pasa cuando introduzco el descento solo me permite trabajar con números enteros y no con decimales. Se que estoy perdido y a lo mejor estoy pretendiendo demasiado, me podrías ayudar y aconsejar como podría hacerlo mejor (espero no haberte exigido mucho) (realmente me sentiría bien si me pudieras ayudar con lo que puedas).
1 Respuesta
Respuesta de gaunmanuel