如何访问窗体中Frame上的CheckBox组件?
访问Delphi窗体中Frame上的CheckBox组件
要访问窗体里Frame上的CheckBox,得按层级查找——先找到窗体,再找到对应的Frame实例,最后在Frame里找CheckBox,不能直接跨层级从窗体找Frame上的控件。
你的错误在于Form.FindComponent(TestFrame.CheckBox)的写法:一是FindComponent需要传入组件的名称字符串(不是类成员引用),二是窗体的直接子组件是Frame,Frame上的CheckBox属于Frame的子组件,窗体的FindComponent无法直接查到它。
正确步骤如下:
- 第一步,获取目标窗体(和你之前的写法一致):
Form := Application.FindComponent('frm1') as TForm; - 第二步,从窗体中找到Frame实例,注意这里要传入Frame在窗体上的实际名称(比如你的Frame组件在窗体上命名为
TestFrame1,就传这个字符串),还要转换成对应的Frame类:Frame := Form.FindComponent('TestFrame1') as TTestFrame; - 第三步,从Frame实例中找到CheckBox组件,同样传入CheckBox在Frame上的名称字符串:
CheckBox := Frame.FindComponent('CheckBox1') as TCheckBox; - 最后设置CheckBox状态:
CheckBox.Checked := True;
如果不确定组件的名称,可以在设计时查看控件的Name属性——这是FindComponent唯一能识别的标识。
内容的提问来源于stack exchange,提问作者James Brown
相关产品推荐
相关产品推荐

