@gemy:
Wenn ich es richtig verstanden habe, möchtest du immer, wenn ein Wert in TOrder "geändert" wird, diesen geänderten Wert in fMedArray "zufügen". Richtig?
TOrder ist für sich gekapselt und hat keinen Zugriff nach aussen auf TPattern.
Du könntest TOrder mitteilen, wer TPattern ist. Dazu erstellst du das "Property parent".
Du darfst aber nicht vergessen Parent anzugeben, wenn du ein Element zu OrderItems zufügst.
Delphi-Quellcode:
type
Tpattern = class(Tobject)
private
fMedArr: array of currency;
private
type
Torder = record
fMissed_points: currency;
procedure SetMissedPoints(val: currency);
private
FParent: Tpattern;
public
property Missed_points: currency Read fMissed_points Write SetMissedPoints;
Property Parent: Tpattern read FParent write FParent;
end;
public
OrderItems: array of Torder;
procedure MedArr(const Value: currency);
end;
procedure Tpattern.MedArr(const Value: currency);
begin
fMedArr := fMedArr + [Value];
end;
procedure Tpattern.Torder.SetMissedPoints(val: currency);
begin
fMissed_points := val;
if assigned(FParent) then
FParent.MedArr(val);
end;
Wobei ich jetzt nicht sagen will, dass dies besonders Toller Code ist. Und nichts ist getestet.
Insgesamt würde ich auch deine Namensgebung anpassen.
Die
Procedure MedArr
für einen Wert zu deinem Array hinzu. Besser wärde der Name
Procedure AddToMedArr
eine Procedure sollte beschreiben, was sie macht.