Hallo Leute!
Dies ist mein erster Post, also gibt's gleich ne Noob-Frage
Wenn ich den Fehler 'Ungültige Gleitkommaoperation' erhalte,
kann das noch was anderes sein als ein Zahlenwert durch null?
In meinem Programm bekomme ich nämlich diese Fehlermeldung aus heiterem Himmel.
Vor ein paar Minuten war noch alles ok.
Delphi-Quellcode:
procedure TFAnimus.gbTweakCameraZoomChange(Sender: TObject);
var
zoom, x1,y1,z1, x2, y2, z2, newX, newY, newZ: Extended;
begin
zoom := gbTweakCameraZoom.Position/(gbTweakCameraZoom.Max); //max ist natürlich nicht 0
DecimalSeparator := '.';
x1 := (gbCamTweakerPosX.Position-gbCamTweakerPosX.Max div 2)/1000; //GaugeBars aus Graphics32
y1 := (gbCamTweakerPosy.Position-gbCamTweakerPosY.Max div 2)/1000;
z1 := (gbCamTweakerPosZ.Position-gbCamTweakerPosZ.Max div 2)/1000;
x2 := (gbCamTweakerTargetX.Position-gbCamTweakerTargetX.Max div 2)/1000;
y2 := (gbCamTweakerTargetY.Position-gbCamTweakerTargetY.Max div 2)/1000;
z2 := (gbCamTweakerTargetZ.Position-gbCamTweakerTargetZ.Max div 2)/1000;
newX := MixValues(x1, x2, zoom); //hier kommt keine Division vor; ist eine einfache lineare Interpolation
newX := MixValues(y1, y2, zoom);
newZ := MixValues(z1, z2, zoom);
LEcamX.Text := FloatToStr(newX); //hier kann es irgendwo sein, da nach der Fehlermeldung
LEcamY.Text := FloatToStr(newY); //der Wert newY in LEcamX eingetragen wird..
LEcamZ.Text := FloatToStr(newZ);
end;
Nach dem Fehler bleibt die betreffende GaugeBar irgendwie im OnChange hängen.
Das ist daran zu erkennen, dass der Anfasser nicht mehr einrastet und OnChange
immer ausgeführt wird, sobald man die Maus über die Komponente hält.
Vielen Dank schonmal im Voraus.