Hola, Casimiro y ecfisa,
Al primero (casimiro), el código que envia los datos a la lista es este:
Form1. button2.click.... //envia datos al tercer formulario (rForm), que contiene la lista.
Código Delphi
[-]
Public
precios : array[0..8] of Real;
....
procedure TForm1.Button2Click(Sender: TObject);
begin
case cmbHebillas.ItemIndex of
0: precios[0]:= 0.30;
1: precios[1]:= 0.35;
2: precios[2]:= 0.60;
3: precios[3]:= 1.00;
4: precios[4]:= 1.20;
5: precios[5]:= 1.30;
6: precios[6]:= 1.70;
7: precios[7]:= 1.50;
8: precios[8]:= 1.50;
end;
i:= (StrToFloat(label9.Caption)+StrToFloat(label10.Caption)+StrToFloat(label11.Caption)+
StrToFloat(label12.Caption)+StrToFloat(label13.Caption)+StrToFloat(label14.Caption)+
StrToFloat(label15.Caption)+StrToFloat(label16.Caption));
label17.Caption:= FormatFloat('0.00',i); rForm.Label35.Caption:= FormatFloat('0.00',i*StrToInt(edit1.Text)); pDatos.showModal; End;
Segundo formulario (pDatos)
Código Delphi
[-]procedure TpDatos.Button2Click(Sender: TObject);
var
valores : array[1..100 , 1..100] of longint; i,j, valor: longint;
begin
if (cmbProvincia.Text = '') then
button2.Enabled:= false
else
button2.Enabled:= true;
for i:= 0 to 99 do for j:= 0 to 99 do
begin
valor:= random(valores[i,j]);
label8.Caption:= 'R'+IntToStr(valor);
end;
with rForm.plista.Items.Add do
begin
subItems.Add(mask1.Text+'_'+label8.Caption); SubItems.Add(edit1.Text);
SubItems.add(edit2.Text);
SubItems.add(edit3.Text);
SubItems.add(cmbProvincia.Text);
SubItems.add(mask2.Text);
SubItems.add(mask1.Text);
end;
with rForm.lista.Items.Add do begin
subItems.Add(mask1.Text+'_'+label8.Caption);
SubItems.Add(Form1.cmbHebillas.Text);
SubItems.add(Form1.Label7.Caption+', '+form1.Label8.Caption);
if Form1.opc1.Checked then
subItems.Add(form1.opc1.Caption);
if Form1.opc2.Checked then
subItems.Add(form1.opc2.Caption);
if Form1.opc3.Checked then
subItems.Add(Form1.opc3.Caption);
if Form1.ch1.Checked then
subItems.Add('Si')
else
subItems.Add('No');
if Form1.ch2.Checked then
subItems.Add('Si')
else
subItems.Add('No');
if Form1.ch3.Checked then
subItems.Add('Si')
else
subItems.Add('No');
if Form1.ch4.Checked then
subItems.Add('Si')
else
subItems.Add('No');
SubItems.Add(form1.Label17.Caption);
SubItems.Append(form1.edit1.Text);
end;
with rForm do
begin
Label4.Caption:= edit1.Text;
Label2.Caption:= mask1.Text+'_'+pDatos.label8.Caption;
Label6.Caption:= edit2.Text;
Label8.Caption:= edit3.Text;
label10.Caption:= cmbProvincia.Text;
label12.Caption:= mask2.Text;
label14.Caption:= mask1.Text;
end;
rForm.showModal;
End.
Por ultimo el rForm que contiene la lista:
Código Delphi
[-]procedure TrForm.FormActivate(Sender: TObject);
var
i: integer;
total: extended;
total2: TStringList;
begin
total2.Create;
for i:= 0 to lista.Items.Count -1 do
begin
total2.Add(lista.Items[i].SubItems[9]);
total:= total + strToFloat(total2.Text) ; Label35.Caption:= FloatToStr(total);
label36.Caption:= total2.Text;
end;
end;
De este último trozo, label35 no muestra la suma de nada, tan solo el precio del ultimo articulo introducido en la lista. Y la linea que hace mencion a "total2",da error de "access violation"
Ya he probado con todos los indices por si meto alguno que no exista, pero no hay forma.
Espero no haberme liado explicando todo.
Hola ecfisa, ahora me pongo con tu demo, a ver si consigo algo, estuve escribiendo este post antes de mirarlo, en cuanto sepa algo te digo.
Gracias a los dos, con lo que vaya surgiendo os comento, y si empiezo a rallar la pesadez decirmelo eh.
Un saludo.