Hallo DeddyH,
deine Frage hat mir schon die Augen geöffnet. OnCreate ist ja nicht der Konstruktor (wie ich blöderweise dachte) sondern das Ereignis, das beim Aufruf des Konstruktors gefeuert wird.
Daher war der Sender bei mir oben auch das TViewMSG selbst.
Da ich keinen Konstruktor hatte, galt denk ich mal der der Mutterklasse TForm und der will halt gern einen Owner TComponent.
Hab das OnCreate gelöscht und folgenden Konstruktor gebaut:
Delphi-Quellcode:
constructor TViewMSG.Create(Sender: TObject);
begin
if Sender is TComponent then inherited Create(TComponent(Sender))
else inherited Create(nil);
if Sender <> nil then showmessage(Sender.ClassName);
end;
Damit läuft es, wie es soll, aber es kommt die Warnung im Kompiler:
[Warnung] mViewMSG.pas(31): Methode 'Create' verbirgt virtuelle Methode vom Basistyp 'TCustomForm'
Ist das schlimm? Muss ich da noch irgendwo ein override oder so hinzufügen?