Einzelnen Beitrag anzeigen

sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#19

Re: zugriffsverletzung bei aufruf von destroy

  Alt 22. Mai 2006, 16:56
ah, jetzt klappt das...
darf ich mal fragen wie du drauf gekommen bist?

außerdem wundert mich folgendes: wenn ich die komponente noch erst selbst aus der komponentenliste entfernen muss, warum muss ich dann nicht vorher auch noch alle anderen komponenten aus der liste entfernen, sondern nur das formular, bei dem onclose aufgerufen wurde?

hab mal ein bisschen rumgespielt und das

RemoveComponent(self); von dir entfernt und dafür einen ondestroy-handler für das datenmodul reingeschrieben, das folgendes macht:

Delphi-Quellcode:
procedure TDataModule1.DataModuleDestroy(Sender: TObject);
begin
  while (self.ComponentCount > 0) do
    begin
      self.RemoveComponent(self.Components[0]);
    end;
end;
verhält sich aber sehr eigenartig, weil da nur das aufrufende formular, nicht aber das andere geschlossen wird...

[edit]ach ich verstehe: beim aufruf von free für den owner wird automatisch close() für alle anderen formulare ausgeführt, was diese komponenten auch wieder verschwinden lässt, oder?..trotzdem meine frage aus zeile 2 (s.o. in diesem post): darf ich mal fragen wie du drauf gekommen bist?[/edit]
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat