创建Panel
写了一个控件cyPanel, 在其Create时想对其 容器内的控件赋值, 比如:
For i := 0 to ControlCount - 1 do
begin
if (Controls[i] is TcyEdit) then
...
end;
可以在其 Create 时 ControlCount 始终为0,也就是Panel创建时就那个些Eidt, Combobox根本就没有创建,那么应该在什么时候来处理这个 初始化呢?
请提供相应的思路!
[解决办法]
For i := 0 to ComponentCount- 1 do
begin
if (Components[i].ClassNameIs( 'TcyEdit ') then
...
end;
[解决办法]
你先要确认控件cyPanel在那个容器之上
如果是Form窗体上的话
for i := 0 to cyPanel.ControlCount-1 do
再
if (cyPanel.Controls[i] is TEdit) then
if (cyPanel.Controls[i] is TCombobox) then
如果在别人容器上,如一个Panel
那就用for i := 0 to Panel.cyPanel.ControlCount - 1 do
再
if (cyPanel.Controls[i] is TEdit) then
if (cyPanel.Controls[i] is TCombobox) then
就可以了
你先要保证你所查找的容器正确
[解决办法]
你的Panel1已经创建了,所以该Panel1上的控件需要设置一个Parent属性,
就是将Edit1.Parent := Panel1;
这样,应该可以了;
[解决办法]
写在控件的构造函数中