Delphi – Why does the components created at my runtime do not appear on the form?

I am testing an example from this Q& A Component Creation – Joining Components Together? to understand how to create custom/composite components.

Although the example The components installed in can be dragged to the form, but I can’t seem to create it at runtime.

procedure TForm1.Button1Click(Sender: TObject);
var< br />MyPanel2: TMyPanel;
begin
MyPanel2 := TMyPanel.Create(Form1);
With MyPanel2 do
begin
Left := 10;
Top := 10;
Width := 400;
Height := 400;
Visible := True;
Image.Picture.LoadFromFile('C: est.png ');
end;
end;

I tried myself and Form1 as the owner. Use the panel and image attributes.

Just not sure about me What did I do wrong. No error, unless I forgot to add pngimage to my purpose. The steps to complete the code are good, and there is no visualization at runtime.

You need to set Parent in the runtime code.

MyPanel2 := TMyPanel .Create(Self);
with MyPanel2 do
begin
Parent := Self;//oops, you forgot to set this
SetBounds(10, 10, 400, 400) ;
Image.Picture.LoadFromFile('C: est.png');
end;

Your question The code in will not cause the control to display ordinary vanilla TPanel, or actually any control.

From the documentation, I emphasize:

Specifies the parent of the control.

Use the Parent property to get or set the parent of the control. The
parent of a control is the control that contains it. For example, if
an application includes three radio buttons in a group box, the group
box is the parent of the three radio buttons, and the radio buttons
are the child controls of the group box.

To serve as a parent, a control must be an instance of a TWinControl
descendant.

When creating a new control at run time, assign a Parent property value for the new control. Usually, this is a form, panel, group box, or a control that is designed to contain another. Changing the parent of a control moves the control onscreen so that it is displayed within the new parent. When the parent control moves, the child moves with the parent.

I am testing from this Q& A Com ponent Creation – Example of Joining Components Together? to understand how to create custom/composite components.

Although the components installed in the example can be dragged to the form, I can’t seem to create them at runtime It.

procedure TForm1.Button1Click(Sender: TObject);
var
MyPanel2: TMyPanel;
begin
MyPanel2: = TMyPanel.Create(Form1);
With MyPanel2 do
begin
Left := 10;
Top := 10;
Width := 400;
Height := 400;
Visible := True;
Image.Picture.LoadFromFile('C: est.png');
end;
end;

I tried myself and Form1 as the owner. Use the attributes of the panel and the image.

Just not sure what I did wrong. There is no error unless I forgot to add pngimage to my use. The steps to complete the code are very good, there is no visualization at runtime.

You need to set Parent in the runtime code. < p>

MyPanel2 := TMyPanel.Create(Self);
with MyPanel2 do
begin
Parent := Self;//oops , you forgot to set this
SetBounds(10, 10, 400, 400);
Image.Picture.LoadFromFile('C: est.png');
end;

The code in your question does not cause the control to display a normal vanilla TPanel, or actually any control.

From the documentation, I emphasize:

Specifies the parent of the control.

Use the Parent property to get or set the parent of the control. The
parent of a control is the control that contains it. For example, if
an application includes three radio buttons in a group box, the group
box is the parent of the three radio buttons, and the radio buttons
are the child controls of the group box.

To serve as a parent, a control must be an instance of a TWinControl
descendant.

When creating a new control at run time, assign a Parent property value for the new control. Usually, this is a form, panel, group box, or a control that is designed to contain another. Changing the parent of a control moves the control onscreen so that it is displayed within the new parent. When the parent control moves, the child moves with the parent.

Leave a Comment

Your email address will not be published.