Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#6

Re: dynamische erstellte Komponenten wieder freigeben?

  Alt 31. Jan 2007, 20:22
Zitat von Muetze1:
Ein FreeAndNil() lässt sich zwar mit einem dynamischen Array aufrufen, aber es ist nicht gewollt geschweige denn ansatzweise gesund. Ein dynamisches Array wird entweder durch die Zuweisung von Nil auf 0 reduziert oder du rufst SetLength() mit einer Länge mit 0 auf. FreeAndNil() ist nur für Instanzen gedacht.
Um ein dynamische Array muss man sich garnicht kuemmern. Da verwaltet Delphi die Freigabe selber.
Die im Array abgelegten Komponenten muss man nur freigeben wenn man sie ohne Owner erzeugt hat. Der Owner einer Komponente ist fuer die Freigabe zustaendig.
Man kann sie natuerlich trotzdem freigeben. Ueber den Mechanismus der Methode Notification wird dann der Owner benachrichtigt so das er die Komponente aus der Liste seiner verwalteten Komponenten herausnimmt.
  Mit Zitat antworten Zitat