主题:关于两个FORM的问题
channelxp
[专家分:20] 发布于 2007-03-01 13:16:00
我想把FORM1里EDIT中的数据传给FORM2中的EDIT,应该怎么做了,在FORM2里写EIDT1.TEXT := FORM1.EDIT1.TEXT是不行的,会报错,请高手指点下
回复列表 (共7个回复)
沙发
zwt [专家分:1230] 发布于 2007-03-01 13:38:00
设置一个全局变量X,先把Form1.Edit1.Text的值赋给X,再把X赋给Form2.Edit1.Text。
板凳
zaliang [专家分:1010] 发布于 2007-03-01 17:01:00
在form2里.use form1
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
3 楼
长尾兔 [专家分:3630] 发布于 2007-03-02 15:09:00
:)
4 楼
5cai [专家分:90] 发布于 2007-03-03 15:41:00
用全局变量吧
5 楼
lgt9732 [专家分:170] 发布于 2007-03-13 09:58:00
我个人觉得还是2楼的会比较好一点!
6 楼
糖醋鼻子 [专家分:110] 发布于 2007-03-13 18:45:00
在form2的public标志下增加一个procedure setEdtText(string newText);
函数
然后实现如下:
procedure setEdtText(string newText);
begin
edit1.text := newText;
end;
这样做的优点:
传递参数可控,不会像全局变量那样谁都可以随意修改,当然,你也可以加入sender参数来判断调用是否来自form1
7 楼
糖醋鼻子 [专家分:110] 发布于 2007-03-13 18:47:00
楼主那个错误应该是说在FORM2中找不到Form1.edit1,因为你没有在uses里加入unit1(即Form1使用的单元),加上就OK了,但不建议使用这种方式,容易乱
我来回复