有这么一段程序,但不能实现我要的结果
Memo1.Lines.Add(Inttostr(form1.ComponentCount)); //此处能显示出form1上的组件个数
for i:=0 to Panel1.ComponentCount-1 do //可此处却不能显示出Panel1的组件个数,值却为0
begin
Memo1.Lines.Add(Panel1.Components[i].ClassName);
end;
怎么回事?
Memo1.Lines.Add(Inttostr(form1.ComponentCount)); //此处能显示出form1上的组件个数
for i:=0 to Panel1.ComponentCount-1 do //可此处却不能显示出Panel1的组件个数,值却为0
begin
Memo1.Lines.Add(Panel1.Components[i].ClassName);
end;
怎么回事?
解决方案 »
- 编译通过了,为什么运行的时候就出错,停在
- 哪里有delphi写数码相片制作VCD/DVD的程序的文章或例子?
- 一个自动刷IP工具的问题,急急,找个人一起解决!
- 我对多个CLIENTDATASET做了修改然后在中间层一个事务中处理要怎样做
- Keybd_Event为什么在游戏中模拟按键失效了??求解!
- 求教一种算法 如何删除一个父结点 同时删除他下面所有的子结点 在线等代码 立刻给分
- 分放完了,问题还有一点.传递值的问题!
- 我不知道为什么?是我的无知,还是bug?
- !分数全给
- 将字符串转为16进制数通过socket.sendtext发送出去
- 请教: hongqi162(失踪的月亮)
- 问题应该不难,可我就是不知道!
var
i:integer;
Result:integer;
begin
Result:=0;
for i:=0 to Self.ComponentCount-1 do
begin
if Self.Components[i].GetParentComponent = Panel1 then
begin
Memo1.Lines.Add(Self.Components[i].ClassName);
Inc(Result);
end;
end;
edit1.Text := IntToStr(Result);end;
(你在这个panel 上又放了几个panel,其他控件放在这几个panel上,只能得到这几个panel的个数。)
function TForm1.IsParentComponent(Child,Parent:TComponent):boolean;
begin
if Child.GetParentComponent = Parent then
Result := true
else if (Child.GetParentComponent = Self)or(Child.GetParentComponent = nil) then
Result := false
else
Result := IsParentComponent(Child.GetParentComponent,Parent);
end;procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
Result:integer;
begin
Result:=0;
for i:=0 to Self.ComponentCount-1 do
begin
if IsParentComponent(Self.Components[i], Panel1) then
begin
Memo1.Lines.Add(Self.Components[i].Name);
Inc(Result);
end;
end;
edit1.Text := IntToStr(Result);end;