Moin ihr,
ich hab da ein kleines Problemchen mit den Klassenoperatoren.
Und zwar geht Einiges einfach nicht, obwohl ich dachte es würde so gehn?
Code:
Type TWindow = Record
Public
Class Operator Implicit(
Handle: HWND): TWindow;
Class Operator Implicit(Rec: TWindow): HWND;
End;
Procedure Test(H: HWND);
Begin
End;
Var H: HWND;
W: TWindow;
42: W := H; // [color=green]geht[/color]
43: W := 123; // [color=green]geht[/color]
44: H := W; // [color=red]geht nicht[/color]
45: Test(W); // [color=red]geht auch nicht[/color]
46: If W = H Then ; // [color=red]geht nicht[/color]
Zitat:
[Pascal Error] Unit1.pas(44): E2010 Incompatible types: 'HWND' and 'TWindow'
[Pascal Error] Unit1.pas(45): E2010 Incompatible types: 'HWND' and 'TWindow'
[Pascal Error] Unit1.pas(46): E2015 Operator not applicable to this operand type
Abgsehn von "123" (Integer) sind die Typen doch eigentlich identisch und Delphi sollte entsprechend umwandeln.
Der "Witz" dabei ist, wenn ich das Ganze z.B. mit String statt HWND versucht, dann geht plötzlich alles. :schock: