6
ソースファイルを持たずにTFormを作成して表示することは可能ですか? 実行時にフォームを作成し、空の* .dfmファイルと* .pasファイルを使用したいと思っています。 * .dfmと* .pasファイルを持たずに動的にフォームを作成できますか?
はソースファイルを持たずにTFormを作成して表示することは可能ですか? 実行時にフォームを作成し、空の* .dfmファイルと* .pasファイルを使用したいと思っています。 * .dfmと* .pasファイルを持たずに動的にフォームを作成できますか?
はあなたはこのように意味しますか?
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;
はい、それは可能ですありがとう:
procedure TForm1.Button1Click(Sender: TObject);
var
Form: TForm;
begin
Form:= TForm.Create(Self);
try
Form.ShowModal;
finally
Form.Free;
end;
end;
ああ、私はこれらのファイルが必要なフォームを動的に作成するために、私はそれがとても簡単だとは思わないと思っています。ありがとうございました –
@Martin .dfmファイル解析は、Andreasの優れた答えのコードと同じように、.dfmファイルをプロパティ割り当てに変換します。 –
+1良い答え。メモでは、フォームに追加された各コントロールの変数を使用する必要はありません。たとえば、ラベルを追加してそのプロパティを変更するには、 'TLabel.Create(Form)doと併用することができます。デルファイはそれに一意の名前を割り当て、望むなら変更することができます。 –