Ver Mensaje Individual
  #1  
Antiguo 30-12-2020
AlejandroCalica AlejandroCalica is offline
Miembro
 
Registrado: nov 2020
Posts: 35
Reputación: 0
AlejandroCalica Va por buen camino
compactar codigo combobox

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;
  //Pesouble;
  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 //Cachorro de 2  meses

   Gra:=StrToFloatDef(Edit1.Text,0) * 10 /100;
   Label5.Text:=FloattoStr(Gra);
   //60,20,10,5,5
   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 //Cachorro de 3 a 4 meses
   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//Cachorro de 5 a 6 meses
  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 //Cachorro de 7 a 8 año
   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 //Cachorro de 9 a 10 año
   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 //Cachorro de 11 a 12 año
   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 //Adulto Actividad Alta
   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 //Adulto Actividad Media
   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 //Adulto Cedentario
   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 //Esterilizada o Castrado
    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 //Perro mayor de 6 años
    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)  ;
Responder Con Cita