Eine Frage noch. ^^
Ich habe den Code geändert, den vorherigen habe ich aus Versehen gelöscht.
Delphi-Quellcode:
procedure TfrmMain.btnCalculateClick(Sender: TObject);
begin
If (Length(edtKathete1.Text) > 0) and (Length(edtHyphotenuse.Text) > 0)
Or (Length(edtKathete2.Text) > 0) and (Length(edtHyphotenuse.Text) > 0)
Or (Length(edtKathete1.Text) > 0) and (Length(edtKathete2.Text) > 0) then
begin
If btnKathete1.Checked then edtKathete1.Text := FloatToStr(sqrt(sqr(StrToFloat(edtHyphotenuse.Text))-sqr(StrToFloat(edtKathete2.Text))));
If btnKathete2.Checked then edtKathete2.Text := FloatToStr(sqrt(sqr(StrToFloat(edtHyphotenuse.Text))-sqr(StrToFloat(edtKathete1.Text))));
If btnHyphotenuse.Checked then edtHyphotenuse.Text := FloatToStr(hypot(StrToFloat(edtKathete1.Text),StrToFloat(edtKathete2.Text)));
edtP.Text := FloatToStr(StrToFloat(edtKathete1.Text) * StrToFloat(edtKathete1.Text) / StrToFloat(edtHyphotenuse.Text));
edtQ.Text := FloatToStr(StrToFloat(edtKathete2.Text) * StrToFloat(edtKathete2.Text) / StrToFloat(edtHyphotenuse.Text));
edtHeight.Text := FloatToStr(sqrt(StrToFloat(edtP.Text) * StrToFloat(edtQ.Text)));
edtFlaeche.Text := FloatToStr(StrToFloat(edtHyphotenuse.Text) * StrToFloat(edtHeight.Text) / 2);
edtGamma.Text := '90 °';
end
Else MessageDlg('Es müssen 2 Seiten angegeben werden.', mtError, [mbOK], 0);
end;
If btnKathete1.Checked then edtKathete1.Text := FloatToStr(sqrt(sqr(StrToFloat(edtHyphotenuse.Text))-sqr(StrToFloat(edtKathete2.Text))));
Wenn er mir das ausrechnet, die If - Bedingung also erfüllt ist, passiert folgendes, wenn ich 20 und 12 eingebe:
EInvalidOp "Invalid floating point operation".
Woran kann das liegen?