Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by bcvs,
1. Mär 2019
Und was ist, wenn die TOjectList später ihre Items freigeben will? Dann sind die nil und es gibt Speicherlecks.
Außerdem könnte es ja sein, dass man die Items außerhalb des VST noch braucht.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by bcvs,
1. Mär 2019
Was mir noch aufgefallen ist: Das FreeNode des vst brauchst du nicht. Deine Data-Objekte werden ja von der DataLst verwaltet und freigegeben. Da ist es nicht gut, wenn der vst diese Objekte auf nil setzt.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by bcvs,
1. Mär 2019
Du musst für jeden Node eine eigene Instanz von TDataClass erzeugen und die auch in der DataLst speichern:
Data := TDataClass.Create;
DataLst.Add(Data);
Data.Zeitraum := '01/2019';
vnHead:= AddVSTStructureHeadClass(vstSP, nil, Data);
Data := TDataClass.Create;
DataLst.Add(Data);
Data.Detail.Caption:='Zeile1:';
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by bcvs,
1. Mär 2019
Jeder Node des Vst sollte sein eigenes Data-Objekt haben.
Dann kannst du auch auf die Unterscheidung Detail1 und Detail2 verzeichten und hast einfach nur noch Detail.
Im GetText kannst du dann bei NodeLevel = 1 einfach die Werte des Data-Objekts des jeweiligen Nodes ausgeben und musst nicht auf AbsoluteIndex prüfen. Das funktioniert hier nämlich nicht so, wie du dir das vorgestellt hast....