Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.851 Beiträge
 
Delphi 12 Athens
 
#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
AppCentral
  Mit Zitat antworten Zitat