Search code examples
delphidynamicdelphi-xe2createinstancetform

Is it possible to dynamically create form without having *.dfm and *.pas files?


is it possible to create and show TForm without having source files for it ? I want to create my forms at runtime and having the empty *.dfm and *.pas files seems to me useless.

Thank you


Solution

  • Do you mean like this?

    procedure TForm1.Button1Click(Sender: TObject);
    var
      Form: TForm;
      Lbl: TLabel;
      Btn: TButton;
    begin
    
      Form := TForm.Create(nil);
      try
        Form.BorderStyle := bsDialog;
        Form.Caption := 'My Dynamic Form!';
        Form.Position := poScreenCenter;
        Form.ClientWidth := 400;
        Form.ClientHeight := 200;
        Lbl := TLabel.Create(Form);
        Lbl.Parent := Form;
        Lbl.Caption := 'Hello World!';
        Lbl.Top := 10;
        Lbl.Left := 10;
        Lbl.Font.Size := 24;
        Btn := TButton.Create(Form);
        Btn.Parent := Form;
        Btn.Caption := 'Close';
        Btn.ModalResult := mrClose;
        Btn.Left := Form.ClientWidth - Btn.Width - 16;
        Btn.Top := Form.ClientHeight - Btn.Height - 16;
        Form.ShowModal;
      finally
        Form.Free;
      end;
    
    end;