循环语句写错了,你只检查了第一页。
while Item<=TableControl1.Tabs.Count do
begin
if TabControl1.Tabs.Strings[Item]=Name then
begin
{检查结果已存在,使其处在最上方(可见)}
TabControl1.TabIndex:=TabI;
break;
end
else
Item:=Item+1;
end; // 循环结束;if Item>TableControl1.Tabs.Count then // 没有找到。
TabControl1.Tabs.Add(Name);
while Item<=TableControl1.Tabs.Count do
begin
if TabControl1.Tabs.Strings[Item]=Name then
begin
{检查结果已存在,使其处在最上方(可见)}
TabControl1.TabIndex:=TabI;
break;
end
else
Item:=Item+1;
end; // 循环结束;if Item>TableControl1.Tabs.Count then // 没有找到。
TabControl1.Tabs.Add(Name);
小的实在不知为什么,请指教!
...
因为TabControl1.Tabs.Strings[Item]是从0开始。
var
Item:Integer;
Name:String;
begin
Item:=0;
while Item<TabControl1.Tabs.Count do
begin
if TabControl1.Tabs.Strings[Item]=Name then
begin
{检查结果已存在,使其处在最上方(可见)}
TabControl1.TabIndex:=TabI;
break;
end
else
begin
Item:=Item+1;
end;
end;
if Item>=TableControl1.Tabs.Count then // 没有找到。
TabControl1.Tabs.Add(Name);end.
改成 TabControl1.TabIndex:=Item;