Wieso wird eine zur Laufzeit erzeugte Komponente nicht angezeigt?


Ich möchte dynamisch eine Instanz von der Klasse TEdit zur Laufzeit erzeugen. Leider erscheint auf meinem Formular aber kein Eingabefeld. Was muß man nach dem Aufruf der Create-Methode noch machen?

Man mußt dem neuen TEdit-Objekt einen Besitzer (Parent) zuweisen. Das ist normalerweise die direkt übergeordnete Komponente, also z.B. das Formular oder ein Panel.

var MyEdit : TEdit;
begin
  MyEdit := TEdit.Create(self);    // In diese Fall ist self = Form1
  MyEdit.Parent := self;           // oder z.B. auch Eingabefeld.Parent := Panel1;
Delphi 1 Delphi 2 Delphi 3 Delphi 4
nicht getestet Version nicht betroffen getestet

siehe auch:

Wie kann ich ein Array von Komponenten erzeugen?

Erzeugen einer Komponente über .create


Delphi FAQ