Priv. gekapselte records/arrays aus Komponenten ?

aus Forum Delphi und Pascal, mehr Informationen
Hallo,

Komponenten mit gekapselten privaten Variablen - Datenaustausch erfolgt dann über property … read … write …
Bei normalen Variablen ist das auch klar
wie aber bei Arrays und records?

Mein Probem:
will ich auf diese properties (von TArray) aus Komponente im Hauptprogramm zugreifen, gibt es Fehler „dem linken Ausdruck kann nichts zugewiesen werden“

Danke

E. B.

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 :smile:

Gruss

Nico