jupp
wenn du (Luckie) auf Setter/Getter hinaus willst, das geht auch mit Records
und außerdem nimmt man dann doch keine TList, sondern eine TObjectList
TList > Records ... TObjectList > Objekte
PS: ein Objekt besteht ja im Prinzip auch nur aus ein paar etwas größeren Records
der harte Kern von diesem
Delphi-Quellcode:
Type TMyObject = Class
Private
FField1: Integer;
FField2: String;
FField3: Pointer;
Procedure SetField2(Const Value: String);
Public
Property Field1: Integer Read FField1 Write FField1;
Property Field2: String Read FField2 Write SetField2;
Property Field3: Pointer Read FField3;
End;
ist ja wohl sowas
Delphi-Quellcode:
Type PMyVirtualObject = ^VMyVirtualObject;
VMyVirtualObject = Record
FField1: Integer;
FField2: String;
FField3: Pointer;
End;
TMyVirtualObject = Record
Private
FData: PMyVirtualObject;
Procedure SetField2(Const Value: String);
Public
Function Create: TMyVirtualObject;
Procedure Free;
Property Field1: Integer Read FData.FField1 Write FData.FField1;
Property Field2: String Read FData.FField2 Write SetField2;
Property Field3: Pointer Read FData.FField3;
End;
Procedure TMyVirtualObject.SetField2(Const Value: String);
Begin
If Value <> '' Then FData.FField2 := Value;
End;
Function TMyVirtualObject.Create: TMyVirtualObject;
Begin
New(Result.FData);
End;
Procedure TMyVirtualObject.Free;
Begin
If Assigned(FData) Then Dispose(FData);
End;
Delphi-Quellcode:
Var O: TMy_Object;
O := TMy_Object.Create;
O.Field2 := 'abc';
O.Free;