ActiveForm中弹出的Form如何引用ActiveForm中的控件的属性?(100分)

  • 主题发起人 白玉京
  • 开始时间

白玉京

Unregistered / Unconfirmed
GUEST, unregistred user!
假设在一ActiveForm弹出一Form,我怎样才能在Form中引用ActiveForm中的控件的属性,
例如我在ActiveForm中定义的button1控件,在Form1中我要改变button1的caption属性
(Form1不关闭的情况下),请问如何实现?
我经过试验,发现对于ActiveForm中的全局变量可以在Form1中进行控制,而对于其
中的Form上的控件却不能控制,我实在是不懂其中的原因,
请各位高手不吝指教,谢谢!
 
难道没有朋友会么!
以前得activeForm相关的文档我全看了,没有可以解决的!:(

请各位高手不吝指教,谢谢!
 
我认为ACTIVEFORM只是一个容器而已,只放置一个PANEL即可,具体的程序窗体自己来创建,
这样要简便的多,根本不会考虑多ACTIVEFORM窗体的控制,改改你的程序吧。
 
在 ActiveForm 中,
ActiveForm 中的控件相对于窗体本身而言,是私有成员。因此除全局变量外其余均不能被
以 ActiveForm1.Button1 方式进行访问。
 
如果你要访问其中的Form上的控件则需要在type library中引出他的接口
(你可以看到你目前所能访问的东西,在type library中都被引为接口或属性了)
注意数据类型(具体支持那些我就不记的了)
 
弹出时:
procedure TActiveFormX.Button1Click(Sender: TObject);
var
f: TForm1;
begin
f := TForm1.Create(self);//注意传递SELF,作为FORM1的OWNER
try
f.ShowModal;
finally
f.Free;
end;
end;
Form1中的调用方法:

procedure TForm1.Button1Click(Sender: TObject);
begin
if (self.Owner) is TActiveFormX then
((Self.Owner) as TActiveFormX).Button1.Caption := 'changed!'
end;
 
顶部