Hi Leute,
nutze die Tage grade um meinen Source von 10.2 auf 10.4 bringen. Dabei kommt es bei der Verwendung von Graphics32 zu einem Problem mit den Class Operatoren, die ich unter 10.2 nicht hatte.
In der
Unit Gr32 ist TFloatPoint wie folgt definiert:
Code:
TFloatPoint = record
X, Y: TFloat;
{$IFDEF SUPPORT_ENHANCED_RECORDS}
public
{$IFNDEF FPC}
{$IFDEF COMPILERXE2_UP}
constructor Create(P: TPointF); overload;
{$ENDIF}
constructor Create(P: TPoint); overload;
constructor Create(X, Y: Integer); overload;
constructor Create(X, Y: Single); overload;
{$ENDIF}
// operator overloads
class operator Equal(const Lhs, Rhs: TFloatPoint): Boolean;
class operator NotEqual(const Lhs, Rhs: TFloatPoint): Boolean;
class operator Add(const Lhs, Rhs: TFloatPoint): TFloatPoint;
class operator Subtract(const Lhs, Rhs: TFloatPoint): TFloatPoint;
{$IFDEF COMPILERXE2_UP}
class operator Explicit(A: TPointF): TFloatPoint;
class operator Implicit(A: TPointF): TFloatPoint;
{$ENDIF}
class function Zero: TFloatPoint; inline; static;
{$ENDIF}
end;
So sollte eigentlich der Vergleich zweier Floatpoints mittels (fp1 <> fp2) oder eine simple Addition (fp1 + fp2) wie unter <= 10.2 kein Problem darstellen, ich erhalte jedoch die Fehlermeldung <[dcc32 Fehler] E2015 Operator ist auf diesen Operandentyp nicht anwendbar>
Habe ich bei 10.4 was übersehen? Danke vorweg!