Einzelnen Beitrag anzeigen

aphexx

Registriert seit: 23. Apr 2010
19 Beiträge
 
#1

Ungültige Gleitkommaoperation

  Alt 22. Mai 2010, 17:05
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.
  Mit Zitat antworten Zitat