回 帖 发 新 帖 刷新版面

主题:关于两个FORM的问题

我想把FORM1里EDIT中的数据传给FORM2中的EDIT,应该怎么做了,在FORM2里写EIDT1.TEXT := FORM1.EDIT1.TEXT是不行的,会报错,请高手指点下

回复列表 (共7个回复)

沙发

设置一个全局变量X,先把Form1.Edit1.Text的值赋给X,再把X赋给Form2.Edit1.Text。

板凳

在form2里.use    form1
var
  Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

3 楼

:)

4 楼

用全局变量吧

5 楼

我个人觉得还是2楼的会比较好一点!

6 楼

在form2的public标志下增加一个procedure setEdtText(string newText);
函数
然后实现如下:
procedure setEdtText(string newText);
begin
    edit1.text := newText;
end;

这样做的优点:
    传递参数可控,不会像全局变量那样谁都可以随意修改,当然,你也可以加入sender参数来判断调用是否来自form1

7 楼

楼主那个错误应该是说在FORM2中找不到Form1.edit1,因为你没有在uses里加入unit1(即Form1使用的单元),加上就OK了,但不建议使用这种方式,容易乱

我来回复

您尚未登录,请登录后再回复。点此登录或注册