Ver Mensaje Individual
  #15  
Antiguo 15-11-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Otro punto:

Si haces lo del mensaje anterior, te queda algo como:

Código Delphi [-]
if ComboBox3.Text = 'Sumar' then
begin
  Edit4.Text := FloatToStr(StrToFloat(ComboBox4.Text) + StrToFloat(ComboBox5.Text));
  Label4.Caption := strRespuestas[Edit3.Text = Edit4.Text];

  Edit6.Text := FloatToStr(StrToFloat(ComboBox6.Text) + StrToFloat(ComboBox7.Text));
  Label5.Caption := strRespuestas[Edit5.Text = Edit6.Text];

  Edit8.Text := FloatToStr(StrToFloat(ComboBox8.Text) + StrToFloat(ComboBox9.Text));
  Label6.Caption := strRespuestas[Edit7.Text = Edit8.Text];

  Edit10.Text := FloatToStr(StrToFloat(ComboBox10.Text) + StrToFloat(ComboBox11.Text));
  Label7.Caption := strRespuestas[Edit9.Text = Edit10.Text];

  Edit12.Text := FloatToStr(StrToFloat(ComboBox12.Text) + StrToFloat(ComboBox13.Text));
  Label8.Caption := strRespuestas[Edit11.Text = Edit12.Text];

  Edit14.Text := FloatToStr(StrToFloat(ComboBox14.Text) + StrToFloat(ComboBox15.Text));
  Label9.Caption := strRespuestas[Edit13.Text = Edit14.Text];

  Edit16.Text := FloatToStr(StrToFloat(ComboBox16.Text) + StrToFloat(ComboBox17.Text));
  Label10.Caption := strRespuestas[Edit15.Text = Edit16.Text];

  Edit18.Text := FloatToStr(StrToFloat(ComboBox18.Text) + StrToFloat(ComboBox19.Text));
  Label11.Caption := strRespuestas[Edit17.Text = Edit18.Text];

  Edit20.Text := FloatToStr(StrToFloat(ComboBox20.Text) + StrToFloat(ComboBox21.Text));
  Label12.Caption := strRespuestas[Edit19.Text = Edit20.Text];

  Edit22.Text := FloatToStr(StrToFloat(ComboBox22.Text) + StrToFloat(ComboBox23.Text));
  Label13.Caption := strRespuestas[Edit21.Text = Edit22.Text];
end;

para la suma. Pero para las otras operaciones, lo único que cambia es el símbolo de la operación (+,-,*,/).

¡Algo debe poder hacerse para reducir las cuatro operaciones a una!

Podrías, por ejemplo, declarar una función:

Código Delphi [-]
type
  TOperacion = (opSuma, opResta, opMultiplicacion, opDivision);

function HazOperacion(Operando1, Operando2: Extended; Operacion: TOperacion): Extended;
begin
  case Operacion of
    opSuma: Result := Operando1 + Operando2;
    opResta: Result := Operando1 - Operando2;
    opMultiplicacion: Result := Operando1 * Operando2;
    opDivision: Result := Operando1 / Operando2;
  end;
end;

Si sustituyes

Código Delphi [-]
Edit4.Text := FloatToStr(StrToFloat(ComboBox4.Text) + StrToFloat(ComboBox5.Text));

por

Código Delphi [-]
Edit4.Text := FloatToStr(HazOperacion(
  StrToFloat(ComboBox4.Text), StrToFloat(ComboBox5.Text), Operacion));

entonces bastará un case al comienzo para escoger Operacion y entonces podrás usar el mismo código para las cuatro operaciones.

// Saludos
Responder Con Cita