Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: FMX Frame zur Laufzeit erstellen und Button darauf anklicken

  Alt 7. Jan 2022, 10:49
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().
  Mit Zitat antworten Zitat