Ich habe ein paar typisierte Konstanten, die zusammen eine verkettete Liste bilden:
Delphi-Quellcode:
const
PCheckBoxEntry = ^TCheckBoxEntry;
TCheckBoxEntry = record
Text: String;
Next: PCheckBoxEntry;
end;
KontStatusEntry2: TCheckBoxEntry = (
Text: 'zwei';
Next: nil);
KontStatusEntry1: TCheckBoxEntry = (
Text: 'eins';
Next: @KontStatusEntry2);
KontStatusEntries: PCheckBoxEntry = @KontStatusEntry1;
Gibt es eine Möglichkeit, diese Liste aus einer Methode heraus zu erweitern? Ich sehe das Problem bei der Gültigkeit der Variablen, die ich in der Methode erstellen und verwenden kann. Ist die Methode durchlaufen, will ich ja auf den neu hinzugefügten KontStatusEntry3 immernoch zugreifen können. Ich sehe hier 2 Ansätze:
- Mit Getmem in der Methode den Speicher reservieren und mit Freemem im finalization-Abschnitt der Unit wieder freigeben (erfordert eine globale Variable zur Verwaltung der erstellten Einträge)
- Im Konstruktor die Konstante "in die Klasse einlesen" (irgendwie in den private-Variablen abbilden) und mit dem private Konstrukt arbeiten
Ich finde beide Lösungen nicht schön/schnell umsetzbar. Vielleicht fällt euch noch was anderes ein?
"Seit er seinen neuen Computer hat, löst er alle seine Probleme, die er vorher nicht hatte."