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.