Einzelnen Beitrag anzeigen

Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Property mit Record als Typ in Klasse verwenden

  Alt 19. Jul 2018, 07:18
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).
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat