Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Komponente zur Laufzeit erstellen (https://www.delphipraxis.net/208342-komponente-zur-laufzeit-erstellen.html)

Zodi 17. Jul 2021 12:45

Komponente zur Laufzeit erstellen
 
Hi Delphinaer ich versuche mich gerade vom erstellen von einr Form und einem Button zur Laufzeit.

Zuerst erstelle ich die Form und danach den Button.
Leider wird mir der Button nicht in der neuen Form sondern im der Haupt Form angezeigt.
Delphi-Quellcode:
var
  Form1: TForm1;
  MyForm1: TForm;
  MyButton: TButton;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  MyForm1 := TForm.Create(self);
  MyForm1.Caption := 'Neue Form';
  MyForm1.Position := poScreenCenter;
  MyForm1.Color := clMaroon;
  MyForm1.Show;
end;


procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  MyButton := TButton.Create(MyForm1);
  MyButton.Top := 1;
  MyButton.Left :=1;
  MyButton.Height := 32;
  MyButton.Width := 200;
  MyButton.Parent := self;
  MyButton.Name := 'New Button';
  MyButton.Enabled := true;
  MyButton.Caption := 'Button3';
  MyButton.Show;
end;
Was mach ich da genau falsch?

bnreimer42 17. Jul 2021 12:51

AW: Komponente zur Laufzeit erstellen
 
Ich denke, Parent vom Button muss das neue Formular sein.

Redeemer 18. Jul 2021 17:04

AW: Komponente zur Laufzeit erstellen
 
Zitat:

Zitat von bnreimer42 (Beitrag 1492460)
[...]Parent vom Button muss das neue Formular sein.

Völlig korrekt.

Der AOwner-Parameter im Konstruktor setzt nur die Komponente, die den Button automatisch freigibt, wenn sie selbst freigegeben wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz