procedure TCT3.InnerOnClick(Sender: TObject);
var
lForm: TForm;
i: Integer;
begin
if Sender is TButton then
begin
lForm := TForm(TButton(Sender).Parent);
for i := 0 to lForm.ComponentCount - 1 do
if lForm.Components is TLabel then
TLabel(lForm.Components).Caption := lForm.Caption;
end;
end;
procedure TCT3.btnDyncFormClick(Sender: TObject);
var
lForm: TForm;
lBtn: TButton;
lbl: TLabel;
begin
lForm := TForm.Create(Context);
try
with lForm do
begin
Caption := 'AutoCreateForm';
Left := Self.Left + 30;
Top := Self.Top + 30;
WindowState := TWindowState.wsNormal;
lbl := TLabel.Create(lForm);
with lbl do
begin
Parent := lForm;
Left := 50;
Top := 50;
Name := 'Label1';
end;
lBtn := TButton.Create(lForm);
with lBtn do
begin
Parent := lForm;
Left := 20;
Top := 20;
Width := 150;
Name := 'Button1';
OnClick := InnerOnClick;
end;
ShowModal;
end;
finally
lBtn.Free;
lbl.Free;
FreeAndNil(lForm);
end;
end;