나는 이런 식으로 할 것이라고 생각하지 않는다, 그러나 이것은 작동합니다
unit UfrmSubForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TfrmSubForm = class(TForm)
edit1: TEdit;
private
procedure Set_EditText(const Value: String);
{ Private declarations }
public
{ Public declarations }
class function Execute(Temp: String): TModalResult;
property EditText: String write Set_EditText;
end;
function SubFormExecute(Temp: String): TModalResult;
implementation
{$R *.dfm}
{ TfrmSubForm }
class function TfrmSubForm.Execute(Temp: String): TModalResult;
var
frmSubForm: TfrmSubForm;
begin
frmSubForm := TfrmSubForm.Create(Application);
try
frmSubForm.EditText := Temp;
Result := frmSubForm.ShowModal;
finally
frmSubForm.Free;
end;
end;
procedure TfrmSubForm.Set_EditText(const Value: String);
begin
edit1.Text := Value;
end;
end.
을 다음과 같이 첫 번째 양식에서 사용 :
procedure TForm1.btnExecuteClick(Sender: TObject);
begin
TfrmSubForm.Execute('Some Text');
end;
가 ShowModal
의 상태를 반환하지 다칠 필요는 없을 것입니다.
다른 개체 (양식 또는 기타)의 속성에 직접 액세스하면 안됩니다. 나중에 TEdit이 TLabel이 될 경우를 대비하여 상위 객체의 프라 티티를 사용하면 frmSubForm을 한 번만 변경하면됩니다. frmSubForm.Edit.Text에 액세스하는 장소가 아닌 한 번만 변경하면됩니다.
출처
2011-12-29 14:18:04
TDC
이 코드하시기 바랍니다 보여! – evilone
양식이 자동 작성되지 않은 경우 mandotory가 양식 참조를 사용합니까? frmSubForm.edit1.text를 좋아합니까? – Nalu