Moin, ich habe mal wieder ein Problem,
dessen Antwort vermutlich auf der Hand liegt, aber ich komme nicht drauf:
Code:
var
MyFrame: TFrame;
begin
MyFrame := TBeliebigerFrame.Create(Self);
MyFrame.Parent := Self;
MyFrame.Align := TAlignLayout.Client;
// MyFrame.HIERSOLLTEMEINBUTTONSEIN_ISTERABERNICHT.Onlick(self);
Nun ist meine Frage, wie ich zur Laufzeit einen Frame erstellen und dann einen Button darauf klicken kann.
Du musst deinen Compiler mitteilen, dass du eine spezielle Frameklasse mit deinen Button meinst.
Du kannst hart casten oder in eine eigene Variable schreiben.
Delphi-Quellcode:
var
MyFrame: TFrame;
begin
MyFrame := TBeliebigerFrame.Create(Self);
MyFrame.Parent := Self;
MyFrame.Align := TAlignLayout.Client;
if MyFrame is TBeliebigerFrame then // optionale Prüfung, wenn Erzeugung und folgender Code an getrennten Stellen liegen:
begin
// Beispiel mit Hard Cast
TBeliebigerFrame(MyFrame).DeinButtonIstErreichbar.Onlick(self);
end;
Warum ist das so?
Wenn du eine TSäugetier-Klasse hast und eine davon abgeleitete THund-Klasse, dann weiß die TSäugetier-Klasse noch nichts von den Methoden HebeBein() oder MachWauWau().