Einzelnen Beitrag anzeigen

Benutzerbild von Rakshasa
Rakshasa

Registriert seit: 1. Nov 2003
182 Beiträge
 
Delphi 2007 Professional
 
#1

Problem mit TDxDraw und FloatToStr()

  Alt 10. Mai 2008, 18:47
Hallo,

ich habe ein ziemlich seltsames Problem mit der aktuellen Version von TDxDraw und der Function FloatToStr() von Delphi 2007. Sobald ein DxDraw auf der Form platziert ist, gibt FloatToStr() ziemlich wirre Werte von sich:

Delphi-Quellcode:
var
s: String;
r: Double;
begin

  r := 5;
  s := SysUtils.FloatToStr(r);
  Showmessage(s);
Ohne DxDraw auf der Form:

Rückgabe: "5" (richtig)

MIT DxDraw auf der Form:

Rückgabe: "4,99999992153375" (irgendwie falsch)

Es scheint irgendwie ein Fehler mit der Genauigkeit zu geben; wenn ich die Function FloatToText() direkt aufrufe (was FloatToStr ja schließlich auch macht), tritt der Fehler solange auf, bis ich den Parameter "Precision" (standardmäßig auf 15) auf einen Wert unter 7 setze:

SetString(s, Buffer, FloatToText(Buffer, r, fvExtended, ffGeneral, 7, 0));
Wie gesagt tritt dieses Problem nur auf, wenn ein DxDraw auf der Form liegt; ob DxDraws in der uses-Klausel auftritt, ist egal.
Ich weiß, das DxDraw veraltet ist, daher bitte keine (berechtigten) Hinweise auf Alternativen

Hat jemand eine Idee, woran das liegen könnte?
  Mit Zitat antworten Zitat