felices fiestas y les traigo otro problema que me surgio con un combobox.
combobox con varios items con un texto especifico, con el cual no hago ninguna operacion, peso si con el item seleccionado
ejemplo
item 1 valor 10%
item 2 valor 8%
item 3 valor 6%
y asi N item ok
bueno dependiendo del tem seleccionado, realisare una operacion con una variable integer pero tengo este codigo extenso y m duda es si existe un metido donde no repta tanto la parte de operaciones, estaba pensando como en un array dependiente del item seleccionado o algo asi
aqui esta el codigo
variables que ocupo
Código Delphi
[-]
var
Form1: TForm1;
CB1:integer;
Oper,Gra: Currency;
Hc,Cm,Ov,Fv,Sn:Currency;
esto es ya en si el codigo que ejecuta las operaciones y donde siento que estoy repitiendo una cantdad considerable de codigo que podria compactar, por fabor diganme que puedo hacer les agradesco.
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
CB1:=combobox1.ItemIndex+1;
case CB1 of
1: begin
Gra:=StrToFloatDef(Edit1.Text,0) * 10 /100;
Label5.Text:=FloattoStr(Gra);
Hc:=(Gra * 60 )/100;
Cm:=(Gra * 20) /100;
Ov:=(Gra * 10) /100;
Fv:=(Gra * 5) /100;
Sn:=(Gra * 5) /100;
Label9.Text:=FloattoStr(Hc) ;
Label10.Text:=FloattoStr(Cm) ;
Label11.Text:=FloattoStr(Ov) ;
Label12.Text:=FloattoStr(Fv) ;
Label13.Text:=FloattoStr(Sn) ;
end;
2: begin Gra:=StrToFloatDef(Edit1.Text,0) * 8 /100;
Label5.Text:=FloattoStr(Gra);
Hc:=(Gra * 60 )/100;
Cm:=(Gra * 20) /100;
Ov:=(Gra * 10) /100;
Fv:=(Gra * 5) /100;
Sn:=(Gra * 5) /100;
Label9.Text:=FloattoStr(Hc) ;
Label10.Text:=FloattoStr(Cm) ;
Label11.Text:=FloattoStr(Ov) ;
Label12.Text:=FloattoStr(Fv) ;
Label13.Text:=FloattoStr(Sn) ;
end;
3:begin Gra:=StrToFloatDef(Edit1.Text,0) * 6 /100;
Label5.Text:=FloattoStr(Gra);
Hc:=(Gra * 60 )/100;
Cm:=(Gra * 20) /100;
Ov:=(Gra * 10) /100;
Fv:=(Gra * 5) /100;
Sn:=(Gra * 5) /100;
Label9.Text:=FloattoStr(Hc) ;
Label10.Text:=FloattoStr(Cm) ;
Label11.Text:=FloattoStr(Ov) ;
Label12.Text:=FloattoStr(Fv) ;
Label13.Text:=FloattoStr(Sn) ;
end;
4: begin Gra:=StrToFloatDef(Edit1.Text,0) * 4 /100;
Label5.Text:=FloattoStr(Gra);
Hc:=(Gra * 60 )/100;
Cm:=(Gra * 20) /100;
Ov:=(Gra * 10) /100;
Fv:=(Gra * 5) /100;
Sn:=(Gra * 5) /100;
Label9.Text:=FloattoStr(Hc) ;
Label10.Text:=FloattoStr(Cm) ;
Label11.Text:=FloattoStr(Ov) ;
Label12.Text:=FloattoStr(Fv) ;
Label13.Text:=FloattoStr(Sn) ;
end;
5: begin Gra:=StrToFloatDef(Edit1.Text,0) * 3 /100;
Label5.Text:=FloattoStr(Gra);
Hc:=(Gra * 60 )/100;
Cm:=(Gra * 20) /100;
Ov:=(Gra * 10) /100;
Fv:=(Gra * 5) /100;
Sn:=(Gra * 5) /100;
Label9.Text:=FloattoStr(Hc) ;
Label10.Text:=FloattoStr(Cm) ;
Label11.Text:=FloattoStr(Ov) ;
Label12.Text:=FloattoStr(Fv) ;
Label13.Text:=FloattoStr(Sn) ;
end;
6: begin Gra:=StrToFloatDef(Edit1.Text,0) * 2 /100;
Label5.Text:=FloattoStr(Gra);
Hc:=(Gra * 60 )/100;
Cm:=(Gra * 20) /100;
Ov:=(Gra * 10) /100;
Fv:=(Gra * 5) /100;
Sn:=(Gra * 5) /100;
Label9.Text:=FloattoStr(Hc) ;
Label10.Text:=FloattoStr(Cm) ;
Label11.Text:=FloattoStr(Ov) ;
Label12.Text:=FloattoStr(Fv) ;
Label13.Text:=FloattoStr(Sn) ;
end;
7: begin Gra:=StrToFloatDef(Edit1.Text,0) * 4 /100;
Label5.Text:=FloattoStr(Gra);
Hc:=(Gra * 60 )/100;
Cm:=(Gra * 20) /100;
Ov:=(Gra * 10) /100;
Fv:=(Gra * 5) /100;
Sn:=(Gra * 5) /100;
Label9.Text:=FloattoStr(Hc) ;
Label10.Text:=FloattoStr(Cm) ;
Label11.Text:=FloattoStr(Ov) ;
Label12.Text:=FloattoStr(Fv) ;
Label13.Text:=FloattoStr(Sn) ;
end;
8: begin Gra:=StrToFloatDef(Edit1.Text,0) * 3 /100;
Label5.Text:=FloattoStr(Gra);
Hc:=(Gra * 60 )/100;
Cm:=(Gra * 20) /100;
Ov:=(Gra * 10) /100;
Fv:=(Gra * 5) /100;
Sn:=(Gra * 5) /100;
Label9.Text:=FloattoStr(Hc) ;
Label10.Text:=FloattoStr(Cm) ;
Label11.Text:=FloattoStr(Ov) ;
Label12.Text:=FloattoStr(Fv) ;
Label13.Text:=FloattoStr(Sn) ;
end;
9: begin Gra:=StrToFloatDef(Edit1.Text,0) * 2.5 /100;
Label5.Text:=FloattoStr(Gra);
Hc:=(Gra * 60 )/100;
Cm:=(Gra * 20) /100;
Ov:=(Gra * 10) /100;
Fv:=(Gra * 5) /100;
Sn:=(Gra * 5) /100;
Label9.Text:=FloattoStr(Hc) ;
Label10.Text:=FloattoStr(Cm) ;
Label11.Text:=FloattoStr(Ov) ;
Label12.Text:=FloattoStr(Fv) ;
Label13.Text:=FloattoStr(Sn) ;
end;
10: begin Gra:=StrToFloatDef(Edit1.Text,0) * 2.5 /100;
Label5.Text:=FloattoStr(Gra);
Hc:=(Gra * 60 )/100;
Cm:=(Gra * 20) /100;
Ov:=(Gra * 10) /100;
Fv:=(Gra * 5) /100;
Sn:=(Gra * 5) /100;
Label9.Text:=FloattoStr(Hc) ;
Label10.Text:=FloattoStr(Cm) ;
Label11.Text:=FloattoStr(Ov) ;
Label12.Text:=FloattoStr(Fv) ;
Label13.Text:=FloattoStr(Sn) ;
end;
11: begin Gra:=StrToFloatDef(Edit1.Text,0) * 2 /100;
Label5.Text:=FloattoStr(Gra);
Hc:=(Gra * 60 )/100;
Cm:=(Gra * 20) /100;
Ov:=(Gra * 10) /100;
Fv:=(Gra * 5) /100;
Sn:=(Gra * 5) /100;
Label9.Text:=FloattoStr(Hc) ;
Label10.Text:=FloattoStr(Cm) ;
Label11.Text:=FloattoStr(Ov) ;
Label12.Text:=FloattoStr(Fv) ;
Label13.Text:=FloattoStr(Sn) ;
end;
end;
end;
esto es lo que repito y no cambia en nada solo el valor que toma la variable Gra
Código Delphi
[-]
Label5.Text:=FloattoStr(Gra);
Hc:=(Gra * 60 )/100;
Cm:=(Gra * 20) /100;
Ov:=(Gra * 10) /100;
Fv:=(Gra * 5) /100;
Sn:=(Gra * 5) /100;
Label9.Text:=FloattoStr(Hc) ;
Label10.Text:=FloattoStr(Cm) ;
Label11.Text:=FloattoStr(Ov) ;
Label12.Text:=FloattoStr(Fv) ;
Label13.Text:=FloattoStr(Sn) ;