Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Bei einer Komponente ein Panel zwischenschalten

  Alt 4. Apr 2009, 19:23
Überlege einmal was du da machst...
Delphi-Quellcode:
  Panel := TPanel.Create(Self);

  inherited Create(Panel);
Du erstellst ein Panel, das deiner Komponente gehört, und danach sagst du, dass die Komponente dem Panel gehört...

Was passiert jetzt beim inherited? Kurz gesagt wird dem Panel als Besitzer gesagt, dass deine Komponente hinzugefügt werden soll. Die dafür aufgerufene Methode wiederum informiert das Panel per Notification darüber, dass dies passiert ist.

Diese Notification wird dann an alle untergeordneten Komponenten weitergeleitet. Dazu gehört auch deine Komponente. Diese wiederum leitet das wiederum an alle untergeordneten Komponenten weiter, wozu das Panel gehört. Und schon hast du einen StackOverflow...

Wie wäre es, wenn du das Panel der übergeordneten Komponente hinzufügst?
Delphi-Quellcode:
  Panel := TPanel.Create(AOwner);

  inherited Create(Panel);
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat