私はそれをこのように行うだろうとは思わないが、これは動作します:
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.
そして、そのような最初のフォームからそれを使用します。ShowModal
DOEのステータスを返す
procedure TForm1.btnExecuteClick(Sender: TObject);
begin
TfrmSubForm.Execute('Some Text');
end;
あなたがそれを必要とするかもしれないことは決して分かりません。
他のオブジェクト(フォームなど)のプロパティに直接アクセスしないでください。 TEditが将来TLabelになる場合には、frmSubFormを一度だけ変更するだけで、frmSubForm.Edit.Textにアクセスする場所は変わらないように、親オブジェクトのプロパティを使用してください。
出典
2011-12-29 14:18:04
TDC
はあなたのコードを表示してください! – evilone
フォームが自動作成されていない場合、そのフォームの参照を使用するマンゴトリーですか? frmSubForm.edit1.textのような? – Nalu