Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi "Ungültige Gleitkommaoperation" Fehler finden? (https://www.delphipraxis.net/181798-ungueltige-gleitkommaoperation-fehler-finden.html)

TiGü 10. Sep 2014 08:35

AW: "Ungültige Gleitkommaoperation" Fehler finden?
 
@AlexII: Arbeitest du mit TWebBrowser, ActiveX-Elementen oder OpenGL?

Wenn ja, versuche folgendes zu implementieren, irgendwo in einen initialization- oder class constructor-Abschnitt.
Delphi-Quellcode:
uses
  System.Math;
...
var
  ExceptionMask : TArithmeticExceptionMask;
begin
  ExceptionMask := GetExceptionMask;
  Include(ExceptionMask, exInvalidOp);
  SetExceptionMask(ExceptionMask);
end;
Siehe auch:
http://docwiki.embarcadero.com/Libra...tExceptionMask

AlexII 10. Sep 2014 08:38

AW: "Ungültige Gleitkommaoperation" Fehler finden?
 
Danke Dir, aber ich habe eigentlich keine arithmetischen Operationen... aber ich arbeite mit ListBoxen. Ich vermute schon, dass der Fehler damit verbunden ist, dass da irgendwo auf ItemIdex -1 zugegriffen wird, aber wo finde ich auch nicht.

DeddyH 10. Sep 2014 08:40

AW: "Ungültige Gleitkommaoperation" Fehler finden?
 
Das würde aber andere Fehler werfen (ListIndex out of bounds).

AlexII 10. Sep 2014 08:46

AW: "Ungültige Gleitkommaoperation" Fehler finden?
 
Dann muss es wohl an dieser Zeile liegen, oder an der SendBitrate an anderer Stelle... weil das ist fast das Einzige was ich neu hinzugefügt habe, bevor der Fehler kam.

Delphi-Quellcode:
if (SendBitrate <> '') and (StrToInt(SendBitrate) >= 16) and (StrToInt(SendBitrate) <= 256) then
Werde es mit TryStrToInt versuchen.

DeddyH 10. Sep 2014 08:52

AW: "Ungültige Gleitkommaoperation" Fehler finden?
 
Das müsste aber ggf. einen EConvertError auslösen, kann es also eigentlich auch nicht sein. Wie schon oben angedeutet musst Du irgendwo mit Gleitkommazahlen rechnen (vielleicht auch indirekt über irgendwelche Komponenten).

TiGü 10. Sep 2014 09:20

AW: "Ungültige Gleitkommaoperation" Fehler finden?
 
Zitat:

Zitat von AlexII (Beitrag 1271939)
Danke Dir, aber ich habe eigentlich keine arithmetischen Operationen... aber ich arbeite mit ListBoxen.

Wie ich bereits schrieb, DeddyH noch mal besonderes betonte und auch in der verlinkten Doku steht, muss es nichts damit zu tun haben das du keine +, -, * und / Operatoren im Quelltext benutzt, sondern das andere Komponenten diesen Fehler verursachen können.

Sherlock 10. Sep 2014 09:29

AW: "Ungültige Gleitkommaoperation" Fehler finden?
 
Bei der Konvertierung eines ungültigen Strings zu Integer kommt doch eher ein "Ist kein gültiger Integer Wert" oder so ähnlich. Der Gleitkomma-Fehler hat eher etwas mit falschen Dezimaltrennern (oder auch Tausendertrennzeichen) zu tun, auch schon wenn man mit Datum hantiert.

Sherlock

himitsu 10. Sep 2014 09:41

AW: "Ungültige Gleitkommaoperation" Fehler finden?
 
Zitat:

Zitat von Sherlock (Beitrag 1271958)
Der Gleitkomma-Fehler hat eher etwas mit falschen Dezimaltrennern (oder auch Tausendertrennzeichen) zu tun, auch schon wenn man mit Datum hantiert.

Oder binär ungültige Daten in einer Fließkommavariable und eventuell auch ungültige Rechenoperationen. (wobei aber z.B. DivByNul seinen eigenen Fehlercode hat)

Dejan Vu 10. Sep 2014 13:04

AW: "Ungültige Gleitkommaoperation" Fehler finden?
 
Zitat:

Zitat von AlexII (Beitrag 1271944)
Dann muss es wohl an dieser Zeile liegen, oder an der SendBitrate an anderer Stelle... weil das ist fast das Einzige was ich neu hinzugefügt habe, bevor der Fehler kam.

Delphi-Quellcode:
if (SendBitrate <> '') and (StrToInt(SendBitrate) >= 16) and (StrToInt(SendBitrate) <= 256) then
Werde es mit TryStrToInt versuchen.

Sag mal, ist Dir mal in den Sinn gekommen, einfach mal *auszuprobieren*, ob dieser oder ein anderer Fehler auftritt, wenn dein String 'SendBitRate' kein gültiger Integer ist? Um Fehler zuverlässig zu vermeiden, muss man sie zunächst
(1) lokalisieren, dann
(2) reproduzieren dann <--------
(3) eliminieren (aka reparieren).

Und wenn das nicht hilft. dann
(3a) kaschieren.

MES 11. Sep 2014 10:23

AW: "Ungültige Gleitkommaoperation" Fehler finden?
 
Setzt Du irgendwo einen Farbcode ein?


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:44 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz