Hi himitsu.
Okay, hab ich alles etwas leichtfertig zusammengehackt
. Ich entschuldige mich dafür und werde in Zukunft sorgsamer sein.
Gleichfalls hast du aber auch nicht gründlich gelesen.
Zitat:
MyPanel hat Panel1 als Owner
und Panel1 hat das MyPanel als Owner.
Das ist so nicht korrekt. Panel1 hat MyPanel als Owner und Parent. Panel1 liegt im Componentskontainer der Parent-Komponente von MyPanel. Du hast recht, wenn jemand das Panel1 löscht ist Panel1 in MyPanel nicht mehr instanziiert, die Variable aber nicht null. Also eher Panel1 gar nicht als Member in der Komponente halten. Da geb ich dir in deinem Code-Beispiel recht. Von Endlosschleife sehe ich aber nichts. Hilf mir auf die Sprünge.
Wo liegt eigentlich der Unterschied zwischen meinem und deinem Code-Beispiel, außer dass Panel1 nich private ist (seh ich ein, ist ein Fehler meinerseits) und dass du den Code von CreateWnd nach Create verschoben hast? (Das Assign ist eine vernünftige Ergänzung für den Fall, dass MyPanel per Code ohne Owner erzeugt wird).
Zitat:
Wozu das Create hier im Beispiel sein soll, weiß wohl keiner.
Naja, Create ist halt beim Testen übrig geblieben. Ist das jetzt so schlimm?
Das CreateWnd mehrfach aufgerufen wird ist mir neu. Dank für den Hinweis. Ist das schon immer so oder erst ab einer speziellen Delphi-Version?
Deinen zweiten Code-Abschnitt verstehe ich nicht. Was soll das RemoveComponent?
Gruß oki