Natürlich sind sie mächtiger. Du kannst sie wie Klassen behandeln, oder wie Records:
Delphi-Quellcode:
TWuppdi = object
Foo: Integer;
procedure Bar;
constructor Create(FooVal: Integer);
end;
procedure TWuppdi.Bar;
begin
Writeln(Foo);
end;
constructor TWuppdi.Create(FooVal: Integer);
begin
Foo := FooVal;
end;
procedure Proc;
var Wupp1: TWuppdi; Wupp2: ^TWuppdi;
begin
//als Record
Wupp1.Foo := 5;
Wupp1.Bar;
//als Klasse
New(Wupp2, Create(8));
try
Wupp2.Bar;
finally
Dispose(Wupp2);
end;
end;
Die Syntax ist zwar ziemlich seltsam, aber es funktioniert. Objects entsprechen praktisch den erweiterten Records aus Delphi 2006 (oder gab es die schon früher?
), zusätzlich ist aber Vererbung möglich.