Ich kann leider keinen Code schicken, das direkt gesagt. Aber ich erkläre alles so gut ich kann.
Ich habe eine Inidatei mit mehreren Sections drin.
Beim Programmstart lege ich für jede Section eine Klasseninstanz an.
Aktuell sind alle Properties in einer einzigen
Unit, in der die Klassendefinition drin steht. Getter und Setter habe ich keine. Read und Write geht direkt auf die Feldvariable.
Das bin ich gerade am ändern und habe diese
Unit in mehrere kleine aufgeteilt.
Und jetzt kommt mein Problem.
Pseudocode:
- InstanzVariable := TKlasse.Create;
- InstanzVariable.OptionenA.Modus := <ModusXY>;
- InstanzVariable.OptionenB.Datum := <Timestamp von irgendwann>;
<füge InstanzVariable einer generischen TList hinzu>
OptionenA und OptionenB sind in der Klassendefinition von TKlasse so deklariert
Delphi-Quellcode:
public
OptionenA: TOptionenA;
OptionenB: TOptionenB;
TOptionenB steht wieder in einer Extradatei etwa so. TOptionenA ist gleich.
Delphi-Quellcode:
type
TOptionenB = record
private
FDatum: Int64;
procedure SetDatum(const Value: Int64);
public
property Datum: Int64 read FDatum write SetDatum;
end;
implementation
procedure TOptionenB.SetDatum(const Value: Int64);
begin
FDatum := Value;
// XXXXXXXXXXXXXXXXXXXXXX
end;
Und genau da wo XXXXX... steht, habe ich ein Problem. Hier müsste ich auf Modus aus OptionenA der selben Klasseninstanz zugreifen.
Nur wie mache ich das am besten? Ich könnte ganz einfach einen Index in OptionenB hinterlegen und dann damit auf die Liste zugreifen in der alle Instanzen liegen.
Aber das sieht für mich fehleranfällig aus.