Hallo!
Das Problem hatte ich neulich, allerdings nur mit Array’s. Ich habe mir die Unit Classes angeschaut und mir damit die Funktionsweise hergeleitet:
Folgender Codeschnippsel aus meiner Komponente sollte selbsterklärend sein. Falls nicht, einfach nochmal nachfragen.
type
…
TPegel = (L,H);
TDataWord = array[1…8] of TPegel;
…
TMOS4094 = class(TComponent)
private
FDataPegel: TDataWord;
…
function DataPegelRead(Index: Integer): TPegel;
procedure DataPegelWrite(Index: Integer; Pegel: TPegel);
…
public
property DataWord[Index: Integer]: TPegel read DataPegelRead write DataPegelWrite;
…
function TMOS4094.DataPegelRead(Index: Integer): TPegel;
begin
result := FDataPegel[Index];
end;
procedure TMOS4094.DataPegelWrite(Index: Integer; Pegel: TPegel);
begin
FDataPegel[Index] := Pegel;
end;
nun kann eine Zuweisung ganz normal erfolgen:
…
MOS4094.DataWord[4] := H;
…
Mit Records wird es sicher ähnlich funktionieren. Vielleicht gibt es auch noch andere Lösungen, wie gesagt, habe mir das so hergeleitet und funktioniert so wie es soll
Gruss
Nico