怎样遍历FORM上的控件。 50(0分)

  • 主题发起人 主题发起人 蛐蛐
  • 开始时间 开始时间

蛐蛐

Unregistered / Unconfirmed
GUEST, unregistred user!
我来抢个先
for i := 0 to ComponentCount - 1 do
if Components = xxxx then xxxx
疑,分呢?
 
测试先。小伙子。
 
for i:=0 to ComponentCount-1 do
Showmessage(Components.Classname);
 
有什么问题吗?
 
for i := 0 to ControlCount - 1 do
if Controls = xxxx then xxxx
这个也行。
 
我也有同样的问题。如果是从自建的控件。在控件的create中加入
{if aowner is tform then
//showmessage(inttostr(tform(aowner).componentcount));
begin
for it:=0 to tform(aowner).componentcount-1 do
begin
if (tform(aowner).components[it] is ttable ) then // and ((tform(aowner).components[it]).tag=111) then
begin
id:=ttable(tform(aowner).components[it]).tablename; //tform(aowner).components[it].text;
showmessage(id);
end;
end;
end; }
如果窗体上有table.等不可见的控件。就找不到它们。有谁知道呀//
 
还有没有其它的。
 
for i := 0 to ControlCount - 1 do
lbl := tlabel.create(application);
lbl.height := 30;
lbl.weight:= 40;
lbl.top := controls..top; //它的高度无法控制。
//通过测试,CREATE 出来之后的控件也自动被FORM收纳了。
.....
end.
有没有办法通过已有的控件来产生新的控件。
 
//通过测试,CREATE 出来之后的控件也自动被FORM收纳了。
这是什么意思?是不是说Create之后的控件的Parent是Form?如果是这样的话,你只需要指
它的Parent就行了,如:lbl.Parent:=Panel1;
还有,你的这段代码很有问题,你Create一个控件之后,如果指定了Parent的话,
ControlCount的值应该是会变的。
我始终没有弄明白你所说的遍历所有控件有什么问题?实际上上面几位的代码都没有问题啊。
 
对了,你是不是这样的问题:比如在Panel上面还有控件?这样用pingbaoshi的方法也可以实现的。
 
上面的代码是没有问题
label1 Tdbedt1 其中label1是动态CREATE的,而TDBEDTI1是设计时的。
LABEL1与TDBED1是同一个PARENT。
TO GODFATHER ,我在实际时,指明LBL.parent = from1.
我手头没有有DELPHI.哎,偏偏我混饭吃的不是DELPHI。
 
我还是不清楚你想干什么? :(
不过如果你指定了LBL.parent = from1,ControlCount 是会不断地增大的,你可以跟踪
看看。
你手头上没有Delphi的话,你怎么知道出了什么问题?
 
TO ALL:
是这样的,我的LABEL的CAPTION准备从数据库中取值,
而TDBEDIT 是帮定了字段的值的。而我有一个专门的表用于存放所有字段的值。
于是,LABEL1 ---->TDBEDIT1------>TABLE---->相关字段的值,再取回相关值作为
LABEL1.CAPTION 以及其它相关值。这样,我的LABEL 与BEDIT肯定在一个FORM上面。

说明白一点,我不想所有的FORM上的LABEL的CAPTION HINT等 都是设计时做好。
在我宿舍有电脑。不好意思。
GODFATHER 有没有好办法。 我已经诚惶诚恐了。我还有274分, 再准备多100分。
 
如果你的每个Lable固定对应某个字段,如字段名为:field1,就可将相对应的Label的名字
设为LabelField1,这样,你得到Field1的值后,可以通过下列的语句将值赋给LabelField
TLabel(FindComponent('LabelField1')).Caption:='xxxx';
这样能不能够解决你的问题?
 
各位,我的电脑被CIH黑了。 没有时间测试,发分。
http://211.101.4.25/delphibbs/dispq.asp?lid=629456 kindly 到这里。
http://211.101.4.25/delphibbs/dispq.asp?lid=627842 littlecq, 到这里。
http://211.101.4.25/delphibbs/dispq.asp?lid=634572 GODFATHER 到这里。
 
问问题也不说清楚,害我白高兴一场~:)
教父的方法可以解决的
 
http://211.101.4.25/delphibbs/dispq.asp?lid=629456 kindly 到这里。
KINFLY ,我没有说不给你分啊。你到上面的ID,我自然会给分你的。
害我白高兴一场~:) >>不明白 ^_^

 
接受答案了.
 
后退
顶部