Hallo,
ich habe gerade das Tutorial über
TVersion und Klassen-Operatoren von Codehunter gelesen.
Jetzt wollte ich versuchen ob man auch richtige Klassen statt Records mit diesen Operatoren ausstatten kann.
In der Delphi Online-Hilfe steht das auch Klassen mit Operatoren überladen werden können:
Zitat:
Nur die in der Tabelle aufgeführten Operatoren können für eine Klasse oder einen Record definiert werden.
http://docwiki.embarcadero.com/RADSt...atoren_(Delphi)
Das ist mein Code:
Delphi-Quellcode:
...
type
TTest = class
private
FValue: Integer;
public
class operator Equal(A: TTest; B: TTest): Boolean; // Zeile 14!
published
property Value: Integer read FValue write FValue;
end;
...
class operator TTest.Equal(A: TTest; B: TTest): Boolean;
begin
Result := A.Value = B.Value;
end;
...
procedure TForm1.Button1Click(Sender: TObject);
var
test1: Ttest;
test2: Ttest;
begin
test1 := TTest.Create;
try
test2 := TTest.Create;
try
test1.Value := Edit1.Text.ToInteger;
test2.Value := Edit2.Text.ToInteger;
ShowMessage(BoolToStr(test1 = test2, True));
finally
test2.Free;
end;
finally
test1.Free;
end;
end;
Leider erhalte ich folgende Fehlermeldung vom Compiler:
Zitat:
[dcc32 Fehler] Unit1.pas(14): E2123 PROCEDURE, FUNCTION, PROPERTY oder VAR erwartet
Warum geht das bei mir nicht? Was mache ich falsch?