Einzelnen Beitrag anzeigen

Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.295 Beiträge
 
Delphi 12 Athens
 
#13

Re: Programmoberfläche dynamisch erzeugen

  Alt 7. Sep 2007, 12:05
Zitat von SirThornberry:
psst! Jemandem der damit anfängt Objekte zu erzeugen sollte gar nicht erst auf die Idee kommen etwas nicht frei zu geben.
Und es schadet ja nicht wenn er es frei gibt.
Ich stimme dir in dieser Beziehung vollkommen zu.

Ich wollte damit nur angeben, daß es möglich ist, daß das Objekt (TButton) an einer anderen Stelle freigegeben werden "kann" und man sich schon überlegen muss, wann man mit deiner Variante die Buttons freigibt. Sollte die andere Stelle "schneller" mit der Freigabe sein als du, dann läufst du mit deiner Variante in eine Exception. Wie gesagt, dein array bekommt einfach nicht mit, wenn die Buttens von einer anderen Stelle freigegeben werden. Wenn schon, dann solltes du bei der Freigabe dich überzeugen, daß der Zeiger in deinem array tatsächlich auf eine noch gültige instanz zeigt. (Einfach mit components und componentcount prüfen)

Teilweise ist es ja auch gewünscht, daß ein anderes Objekt sich um die Freigabe meiner manuell erzeugen Objekte kümmert. Siehe TObjectList mit "ownsobjects:=true". Würdest du dich dort auch um die Freigabe deiner erzeugten Objekte kümmern? Die gleiche Ausnahme sehe ich in Objekten vom Type TComponent. Wenn ich einen Owner angebe, dann weiss ich, dass ich die Kontrolle abgeben kann.



Gerd
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat