Simplemente haz click en File | New … y se abre un nuevo formulario. Seleccionar Project | Application y aparecerá Unit1 – Form1 en el editor. Agregar un TButton del Standard Tab al formulario actual Form1.
Editar el atributo Caption del botón que recién hemos creado Button1 y lo cambiamos a «Dynamic Form» (o lo que les guste que aparezca en el botón).
Hacer doble click en el Button1 y aparecerá el editor de eventos con el código presente:
procedure TForm1.Button1Click(Sender: TObject);
beginend;
Agregar el código siguiente a este manejador de eventos:
procedure TForm1.Button1Click(Sender: TObject);
var
MyForm: TForm;
MyButton: TButton;
begin
//Create MyForm
MyForm:=TForm.Create(nil);
//Set position and attributes
MyForm.SetBounds(100, 100, 220, 150);
MyForm.Caption:=’My dynamic created form’;//Create Button
MyButton:=TButton.create(MyForm);
//Set size and attributes
MyButton.Caption:=’Close my form’;
MyButton.SetBounds(10, 10, 200, 30);
//Assign to parent form
MyButton.Parent:=MyForm;
//Event handler pointer to our procedure above…
MyButton.OnClick:=@MyButtonClick;
//Show My Wonderful Dynamic Form
MyForm.ShowModal;//Destroy & Free all memory from it
FreeAndNil(MyForm);
end;
También agregar apenas antes de este manejador de eventos y después de {$R *.frm} { TForm1 } la siguiente funcion:
//Method/Event to close the dynamic form
procedure TForm1.MyButtonClick(Sender: TObject);
begin
//Just make sure who called us
if Sender is TButton then
begin
//warning you are about to close your wonderful form!!
Showmessage(‘Attention, my dynamically created form is closed!’);
TForm(TButton(Sender).Parent).Close;
end;
end;
Agregar lo siguiente en la declaración TForm1 luego de el procedimiento Button1Click(Sender: TObject);
procedure MyButtonClick(Sender: TObject);
Compilar y ejecutar.