PDA

Ver la Versión Completa : Como multiplicar dos memos


rufo
14-12-2009, 17:45:29
Hola amigos aqui de nuevo visitandolos y consultandolos, resulta que quiero hacer lo siguiente, es decir quiero multiplicar dos memos y que me visualice el resultado en otro memo cuando digite la cantidad en un memo y digite la otra cantidad en otro memo me aparesca automanticamente sin presionar cualquier boton el resultado en el otro memo, les anexo el codigo que estoy empleado en el memo que digito la segunda cantidad:


procedure TFacturacion.Memo3Change(Sender: TObject);
var
no3,no4:double;
begin
no3:=strtofloat(memo2.Text);
no4:=strtofloat(memo3.Text);
memo4.Text:=formatfloat('0.00',no3*no4);

end;

end.


El codigo esta bien cuando captura la primera linea pero al pasar a la segunda linea del segundo memo es cuando me marcar el siguiente error:
'10 15' is not valid floating point value

Espero que me ayuden y gracias de antemano y otro dato mas uso delphi 5

Caral
14-12-2009, 19:50:16
Hola
Al ser texto si esta vacío dara un error, para eso es mejor decirle que si esta vacio que no haga nada.
No se necesitan declarar variables se puede hacer directo.

procedure TFacturacion.Memo3Change(Sender: TObject);
begin
If Memo3.Text = '' then
begin
// nada
end
else
Memo4.Text := FloatToStr(StrToFloat(Memo2.Text) * StrToFloat(Memo3.Text));
end;
Saludos

marcoszorrilla
14-12-2009, 21:17:55
A lo que te dice Carlos yo le añadiría unos bloques Try...Except por si hubiera algo, es decir no se hallará vacío pero no fuera número o su formato no fuera el correcto.

Un Saludo.

Caral
14-12-2009, 21:31:40
Hola
Lo que me parece que esta tratando de hacer es varias multiplicaciones consecutivas.
El código que le mostré no lo hará.
Creo que se necesita crear un array.
Saludos

marcoszorrilla
14-12-2009, 21:57:00
Desde luego si el planteamiento es el que comenta Carlos, lo mejor es que te olvides de los Memos que no son adecuados para el fin que persigues.

Puedes utilizar efectivamente un "array" y luego recorrerlo con un bucle.

Un Saludo.

rufo
15-12-2009, 17:20:55
Gracias amigos quedo resuelto use un array.