动态窗口的使用(50分)

  • 主题发起人 主题发起人 cm
  • 开始时间 开始时间
C

cm

Unregistered / Unconfirmed
GUEST, unregistred user!
如何动态使用一个窗口
:假如有10个窗口,在程序中动态访问其中的某一个窗口中的确控件等.
如何实现,是否有类试与findcomponent的函数.
能否定义一个窗口变量,然后把有用的确窗口赋直给他.


 
findcomponent可以用, 如果想查窗口, 用application.findcomponent(窗口名)
可以定义一个窗口变量, 把找到的窗口赋值给它.
 
var
frm_temp:tform;


frm_temp:=form1;
可以吗?

另外使用application.findcomponent()获得窗口后使用窗口中的空件,编译时无法通过,怎么办?
 
>>frm_temp:=form1;
>>可以吗?
可以
编译无法通过的原因在于你的定义不对
var
frm_temp: TForm;
^^^^^^^
这样, frm_temp只是一个标准TForm, 什么也不包括. 当然找不到你放在上面的控件拉, 改成:
var
frm_temp: TForm1;
就行了.
 
问题在于,我不一定要使用form1,有可能是form2,form3.
application.findcomponent('form1').table1.recordcount
如上面的程序,编译无法通过,当然是table1不认识了了.
 
下面一句编译可以通过
i := TTable(application.findcomponent('form1').findcomponent('table1')).recordcount;
 
ttable(tform(application.findcomponent(str_windowsname)).findcomponent(str_tablename)).recordcount))才完全正确;
每个findcomponent前都要进行转换.
 
后退
顶部