2011-12-21 2 views

答えて

10

あなたはこのように意味しますか?

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; 
+1

ああ、私はこれらのファイルが必要なフォームを動的に作成するために、私はそれがとても簡単だとは思わないと思っています。ありがとうございました –

+4

@Martin .dfmファイル解析は、Andreasの優れた答えのコードと同じように、.dfmファイルをプロパティ割り当てに変換します。 –

+2

+1良い答え。メモでは、フォームに追加された各コントロールの変数を使用する必要はありません。たとえば、ラベルを追加してそのプロパティを変更するには、 'TLabel.Create(Form)doと併用することができます。デルファイはそれに一意の名前を割り当て、望むなら変更することができます。 –

3

はい、それは可能ですありがとう:

procedure TForm1.Button1Click(Sender: TObject); 
var 
    Form: TForm; 

begin 
    Form:= TForm.Create(Self); 
    try 
    Form.ShowModal; 
    finally 
    Form.Free; 
    end; 
end; 
関連する問題