解决马上散分:关于Findcomponent,感觉不容易
已知控件可以利用:Tedit(FindComponent( 'Edit '+inttostr(i))).Text等完成赋值操作. 但未知的已知控件如何赋值呢? 如:下面我的问题:
我在窗体里放了Pagecontrol控件,它所有的页面都是由程序创建的.
由于页面内需要创建的控件可能很多,所以我又在TabSheet里,由程序创建了ScrollBox控件以实现加一个滚动条的效果.它的名字相应的叫ScrollBox1,2,3...
问题:我如何给未知的已知控件赋值?
ScrollBox1.FindComponent
[解决办法]
遍历
[解决办法]
随手写一下,楼主自己调试
var
I, J, K: Integer;
ScrollBox: TScrollBox;
begin
for I := 0 to PageControl.Count - 1 do
begin
for J := 0 to PageControl.Pages[I].ComponentCount - 1 do
begin
if PageControl.Page[I].Components[J] is TScrollBox then
begin
ScrollBox := PageControl.Page[I].Components[J] as TScrollBox;
for K := 0 to ScrollBox.ComponentCount - 1 do
begin
if ScrollBox.Components[K] is TEdit then
(ScrolLBox.Components[K] as TEdit).Text := '.... ';
end;
Break;
end;
end;
end;
end;
[解决办法]
帮顶
[解决办法]
for K := 0 to ScrollBox.ComponentCount - 1 do
begin
if ScrollBox.Components[K] is TEdit then
(ScrolLBox.Components[K] as TEdit).Text := '.... ';
end;
你认定它是文本编辑框,这样不好吧.而一个录入窗口有很多种类型的控件.
if (ScrollBox.FindComponent( 'yourname '+inttostr(PageControl1.TabIndex)+ '_ '+inttostr(k)) is Tedit) then begin
....
end;