Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#1

ClassOperator Implict greift nicht

  Alt 20. Mai 2008, 01:18
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:
$2B or not $2B
  Mit Zitat antworten Zitat