假设有三个窗体A,B,C,窗体B的name为form_b,窗体C的name为form_c,其中窗体B和窗体C都为动态创建。现在我要实现的就是在窗体C中改变窗体B中edit1.text的值,这看似不难吧??呵呵,我就是碰到难题了。
描述如下:
在窗体A中有如下代码:
var tempForm : TForm;
begin
Application.CreateForm(Tform_b,tempForm );//Tformclass_of_B为窗体B的类
tempForm.Show;//这里就显示
end;又假设在窗体B中有如下一edit1控件和button1按钮
其中button1用来显示窗体C,即form_c := Tform_c.create(nil);
form_c.show在窗体C有一按钮button1,其代码为:
Form_b.edit1.text := 'abcdefg';//问题就在于这里出错了,提示访问越权之类的
Form_b.show;窗体A,B,C都互相use了,所以这个就不用考虑在内。请问Form_b.edit1.text := 'abcdefg';这句错在哪?
又如何实现将窗体B 的edit1.text改变呢?
描述如下:
在窗体A中有如下代码:
var tempForm : TForm;
begin
Application.CreateForm(Tform_b,tempForm );//Tformclass_of_B为窗体B的类
tempForm.Show;//这里就显示
end;又假设在窗体B中有如下一edit1控件和button1按钮
其中button1用来显示窗体C,即form_c := Tform_c.create(nil);
form_c.show在窗体C有一按钮button1,其代码为:
Form_b.edit1.text := 'abcdefg';//问题就在于这里出错了,提示访问越权之类的
Form_b.show;窗体A,B,C都互相use了,所以这个就不用考虑在内。请问Form_b.edit1.text := 'abcdefg';这句错在哪?
又如何实现将窗体B 的edit1.text改变呢?
将
var tempForm : TForm;
的变量tempForm改为全局变量,即改在UnitA的Interface部分定义,
在窗体C
Form_b.edit1.text := 'abcdefg';
改为tempForm.Edit1.text := '';