Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Operacion con listbox y memo (https://www.clubdelphi.com/foros/showthread.php?t=67873)

rufo 11-05-2010 20:41:49

Operacion con listbox y memo
 
Hola amigos buenas tardes, espero que me ayuden resulta que quiero multiplicar el contenido de un memo y un listbox y que el resultado me aparesca en otro listbox, les anexo mi programacion

Código:

procedure TPedidos.ListBox3Click(Sender: TObject);
var
 no3,no4:real;
begin
 no3:=strtofloat(memo1.Lines.Text[1]);
 no4:=strtofloat(listbox3.Items.Text[2]);
 listbox1.Items.Text:=formatfloat('0.00',no3*no4);

end;

Asi como esta el codigo cuando le doy clic en el listbox3 me hace la multiplicacion por el numero que esta entre los corchetes entonces es ahi mi duda como decirle al programa que me multiplique lo que tenga en el memo y en listbox y el resultado me aparesca en el otro listbox o que estoy haciendo mal, de antemono gracias.

ecfisa 12-05-2010 00:06:44

Hola rufo.
Te puedo decir que la línea:
Código:

no4:=strtofloat(listbox3.Items.Text[2]);
te va a dar error de conversión si la línea tiene sólo un caracter,
ejemplificando:
Si ListBox1.Items.Text = '192' ; ListBox1.Items.Text[2] = '9'
Si ListBox1.Items.Text = '5' ; ListBox1.Items.Text[2] = '' (Error de conversión ya que en la posición 2 no hay nada)

Pero me faltan detalles para entender que es lo que buscas.
Supongo que el ListBox tiene sus Strings asignadas, pero el Memo ?
lo ingresas o está predefinido?

Que resultado esperas ?
Sólo la multiplicacion de lo seleccionado en el ListBox por lo seleccionado en
el Memo ?
(o una lista con las multiplicaciones del nro seleccionado en el ListBox por
todos los nros del Memo)

Saludos.

rufo 12-05-2010 00:13:24

Gracias amigo ecfisa por contestar, efectivamente los datos los voy ingresar manualmente en el memo y que multiplique por el valor ya definido en el listbox y que me muestre el resultado en el otro listbox, gracias de antemano.

ecfisa 12-05-2010 04:27:16

Hola rufo.
No tenés nada que agradecer; para tratar de ayudar y que nos ayuden estamos aquí :).

A ver si esto es lo que buscas:

Código:

procedure TForm1.Button1Click(Sender: TObject);
var
  n1,n2: Double;
  Linea: Integer;
begin
  n1:= StrToFloat(ListBox1.Items[ListBox1.ItemIndex]);
  Linea:= Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0);
  try
  n2:= StrToFloat(Memo1.Lines.Strings[Linea]);
  except
  on E: EConvertError do
  begin
      ShowMessage('Ingrese un número real');
      Memo1.SetFocus;
      Exit;
  end;
  end;
  ListBox2.Items.Add(FloatToStr(n1)+' x '+FloatToStr(n2)+
    ' = '+ FloatToStr(n1*n2));
end;

Saludos.

rufo 12-05-2010 17:14:37

Efectivamente amigo es lo que andaba buscando de antemano muchas gracias.


La franja horaria es GMT +2. Ahora son las 03:55:37.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi