首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Form1和Form2都可以调用Form3,Form3关闭时怎么给调用它的窗体中的文本赋值

2012-03-23 
Form1和Form2都可以调用Form3,Form3关闭时如何给调用它的窗体中的文本赋值?如题。[解决办法]把Form3的OnFor

Form1和Form2都可以调用Form3,Form3关闭时如何给调用它的窗体中的文本赋值?
如题。

[解决办法]
把Form3的OnFormClose事件的代码写在Form1/Form2当中。当Form1调用Form3时,设置Form3.OnClose:=Form3Close;

Delphi(Pascal) code
unit Unit2;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls;type  TForm2 = class(TForm)    Label1: TLabel;    btnCreateForm3: TButton;    procedure btnCreateForm3Click(Sender: TObject);  private    { Private declarations }    procedure Form3Close(Sender: TObject; var Action: TCloseAction);  public    { Public declarations }  end;var  Form2: TForm2;implementationusesUnit3;{$R *.dfm}var  LocalForm3:TForm3;procedure TForm2.btnCreateForm3Click(Sender: TObject);begin  LocalForm3:=TForm3.Create(Application);  LocalForm3.OnClose := Form3Close;  LocalForm3.Show;end;procedure TForm2.Form3Close(Sender: TObject; var Action: TCloseAction);begin  Label1.Caption := 'Form3Close is Called!';end;end.
[解决办法]
很简单啊,先在form3设一个变量frmname,在创建form3时,如果form1调用
Application.CreateForm(TForm3,Form3);
Form3.frmname:='form1';
Form3.ShowModal;
如果是form2调用
Application.CreateForm(TForm3,Form3);
Form3.frmname:='form2';
Form3.ShowModal;
在form3的close事件写
if frmname='form1' then Form1.edit1:=XX;
if frmname='form2' then Form2.edit1:=XX;


[解决办法]

在Form3中定义一个用于选择学历的函数,并返回其值。
Delphi(Pascal) code
  public    function GetEducationLevel: String;
[解决办法]
上面的方法需要在TForm3之外负责创建和释放Form3实体对象。
如果Form3仅做单一用途,即只返回学历,建议在Form3中写个类方法

Delphi(Pascal) code
public  class function GetEducationLevel: String;class function GetEducationLevel: String;begin  with TForm3.Create(Nil) do  try    //将学历待选项添加到Form3上的Combobox控件中    if Form.ShowModal = mrOk      then Result := Combobox1.Text //返回选择的学历      else Result := EmptyStr;  finally    Free;  end;end;
[解决办法]
很简单啊,先在form3设一个变量frmname,在创建form3时,如果form1调用 
Application.CreateForm(TForm3,Form3); 
Form3.frmname:='form1'; 
Form3.ShowModal; 
如果是form2调用 
Application.CreateForm(TForm3,Form3); 
Form3.frmname:='form2'; 
Form3.ShowModal; 
在form3的close事件写 
if frmname='form1' then Form1.edit1:=XX; 
if frmname='form2' then Form2.edit1:=XX; 


----------------------------

同意,我都是这样做的

热点排行