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 파일 구문 분석은 .dfm 파일을 Andreas의 훌륭한 대답과 같은 속성 할당으로 변환합니다. –
+1 좋은 답변입니다. 참고로 폼에 추가 된 컨트롤마다 변수를 사용할 필요가 없습니다. 예를 들어 레이블을 추가하고 속성을 수정하려면 TLabel.Create (Form) do와 함께 사용할 수 있습니다. 델파이는 고유 한 이름을 지정하고 원하는 경우 변경할 수 있습니다. –