0

我正在尝试在TTabsheet. 问题是,在这个选项卡内只有一个备忘录和一个编辑,但我的代码在所有形式的组件之间迭代。我错过了什么?

var i : integer;
begin
with PageControl1.ActivePage do 
 for i := 0 to componentcount-1 do
   begin
   // componentcount should be 2, but actually is 95
   components[i].doSomething;
   end;
end;
4

2 回答 2

1

我有类似的情况,其中单击按钮导致代码使用组件数组遍历页面控件上的选项卡上的所有控件。后来我把它改成了下面的,它使用给定标签页的控件数组。

procedure TShowDocsByRank.CleanBtnClick(Sender: TObject);
var
 i: integer;

begin
 for i:= 0 to tabsheet1.controlcount - 1 do
  if tabsheet1.controls[i] is TLabeledEdit
   then TLabeledEdit (tabsheet1.controls[i]).text:= ''
  else if tabsheet1.controls[i] is TComboBox
   then TComboBox (tabsheet1.controls[i]).text:= '-';
end;
于 2022-01-18T05:46:35.093 回答
0

也许“与”可能与此有关。您无法真正说出“componentcount”的返回值是多少(甚至可能返回表单本身的组件数?)。

于 2022-01-18T14:53:46.863 回答