Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

ClassOperator Implict greift nicht

  Alt 20. Mai 2008, 00: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:
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat