Einzelnen Beitrag anzeigen

hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#7

AW: TDelphiTwain und Twain Treiber Problem mit bizhub C203

  Alt 8. Sep 2010, 11:26
(...) Bis ich das gefixt hatte, hatte ich auch immer diverse undefinierbare Probleme (...)
Delphi-Quellcode:
{Convert from extended to Fix32}
function FloatToFix32 (floater: extended): TW_FIX32;
var
  fracpart : extended;
begin
  Result.Whole := trunc(floater);
  fracpart := floater - result.Whole;
  fracpart := abs(fracpart);
  Result.Frac := trunc(fracpart*$10000);
end;

{Convert from twain Fix32 to extended}
function Fix32ToFloat(Value: TW_FIX32): Extended;
  function Sign(x: extended): extended;
  begin
    if x < 0 then result := -1 else result := +1
  end;
begin
  Result := Value.Whole + Sign(Value.Whole) * (Value.Frac / $10000);
end;
Ist es so besser? Ich hatte den Eindruck, dass bei der ursprünglichen Implementierung aus -1.2 (-1,+0.2) wurde, was dann zu -0.8 rekonstruiert wurde. Was hatte es mit der Whileschleife und dem *10 auf sich?
Power is nothing without TControl
  Mit Zitat antworten Zitat