Re: Komponenten freigeben - Invalid pointer operation
12. Okt 2006, 12:53
Ok, da würde ich eine andere herangehensweise vorschlagen. Zum einen widerstrebt es mir grundsätzlich irgendwelche Dinge in irgendwelchen Strings abzulegen um dann nachher wieder aus einem String wieder was zu ermitteln. In deinem Falle würde ich einfach folgendes machen:
1. Eine Klasse anlegen die nix weiter hat als 2 Öffentliche Member-Variablen: Einen TButton und eine TActivity. Diese sorgt nachher für die Zuordnung
2. Eine Objektliste welche die Instanzen dieser Klasse enthält
3. Eine Funktion die immer aufgerufen wird, wenn sich irgendwas bei der Liste ändert bzw. besser: geändert hat.
Vorgehensweise:
1. Liste der Miniklasse aktualisieren
- Wenn du in der Objectlist mit der Miniklasse keine Instanz für eine Activity Instanz hast, dann eine Miniklasseninstanz erzeugen, die Activity Instanz zuweisen und der Miniklasse hinzufügen
- Wenn du in der Miniklassenliste eine Instanz einer Miniklasse hast, dessen Activity Instanz du nicht mehr in der Liste deiner Activities findest, dann den vermerkten Button freigeben und den Eintrag aus der Miniklassenliste löschen (was die Miniklasseninstanz gleich mit freigibt)
Damit hättest du alle Änderungen von der Activityliste übernommen. Einfacher wäre das ganze, wenn du in der grossen Verwaltung direkt an den beiden möglichen Punkten ansetzen kannst: Also wenn eine Activity hinzugefügt bzw. gelöscht wird. Dann kannst du dir das durchlaufen der Miniklassenliste ersparen.
Als letztes nun noch die Buttons aktualisieren. Durchlaufe die Miniklassenliste und erzeuge einen Button, wo die Instanz Nil ist. Ansonsten übernehme die Caption von der Activity (falls sie sich geändert hat) und positioniere die Buttons anhand der Position in der Miniklassenliste. Der Name der Buttons ist somit egal, da alles über die Instanzen geregelt wird.
|