Code:
TMyRecord = Record
Changed : boolean;
TotalWidth : Integer;
ColWidth : array[1..3] of Integer;
end;
TMyClass = record
private
FMyRecord: TMyRecord;
function GetMyColWidth(const idx:integer):integer;
procedure SetMyColWidth(const idx:integer;value:integer);
public
property MyRecord: TMyRecord read FMyRecord write FMyRecord;
Property TotalWidth: integer read fMyRecord.TotalWidth write FMyRecord.TotalWidth;
Property ColWidth1 : integer index 1 read GetMyColWidth write SetMyColWidth;
Property ColWidth2 : integer index 2 read GetMyColWidth write SetMyColWidth;
Property ColWidth3 : integer index 3 read GetMyColWidth write SetMyColWidth;
end;
So würde ich das ganze angehen
die Property MyRecord schreibt und ließt den kompletten Record.
die Property TotalWidth schreibt und ließt ein einzelnes Feld eines Records.
die Properties ColWidth als Array angelegt und schon kannst du mit einem Getter/Setter und
der zusätzlichen definition des Index bei der Property auf die einzelnen Werte zugreifen.
Evtl. kannst du auch das Array weglassen und anhand des index bei der Property im Getter/Setter auf
die einzelnen Felder verweisen (müsste das ausprobieren...aber momentant installiert er).