我有一个PageControl1,它上面有TabSheet1,TabSheet2,TabSheet3,TabSheet4
,TabSheet5,TabSheet6,TabSheet7这几个TabSheet,现在我的问题是当TabSheet2,
TabSheet4,TabSheet5这几个TabSheet被隐藏了,编译之后界面上就留下了TabSheet1,
TabSheet3,TabSheet6,TabSheet7这几个TabSheet,我现在就是要根据编译之后顺序来获得它们的ActivePageIndex值,也就是说TabSheet1,TabSheet3,TabSheet6,
TabSheet7的ActivePageIndex值分别是0,1,2,3;
我这样说应该说的比较清楚了吧,还请各位高手帮帮忙
,TabSheet5,TabSheet6,TabSheet7这几个TabSheet,现在我的问题是当TabSheet2,
TabSheet4,TabSheet5这几个TabSheet被隐藏了,编译之后界面上就留下了TabSheet1,
TabSheet3,TabSheet6,TabSheet7这几个TabSheet,我现在就是要根据编译之后顺序来获得它们的ActivePageIndex值,也就是说TabSheet1,TabSheet3,TabSheet6,
TabSheet7的ActivePageIndex值分别是0,1,2,3;
我这样说应该说的比较清楚了吧,还请各位高手帮帮忙
,TabSheet5,TabSheet6,TabSheet7这几个TabSheet,现在我的问题是当TabSheet2,
TabSheet4,TabSheet5这几个TabSheet被隐藏了,编译之后界面上就留下了TabSheet1,
TabSheet3,TabSheet6,TabSheet7这几个TabSheet,??好像这个就已经实现不了,你试过没有。
用动态创建的不是更好吗。
for i:=0 to 3 do
with ttabsheet.Create(self)do
begin
pagecontrol:=pagecontrol1;
caption:='新增页'+inttostr(i);
然后是到一定条件才让他们访问:
在OnChange事件中
写入你的判断,如果是换到你要禁止的页面中就,不让他们换
TabSheet4,TabSheet5这几个TabSheet被隐藏了,
// 如果确实不需要这些页的话 可以delete掉...
yourpage.Pages[x].destory.
var i,j:integer;
begin
j :=-1;
for i:=0 to TabSheetIndex do
if PageControl1.Pages[i].Visible then
inc(j);
Result :=j;
// when j= -1 then no TabVisible
end;
function getTabIndex(aTAbSheet:TTabSheet):integer;
begin
case aTabSheet.pageindex of
0: result := 0;
2: result := 1;
5: result := 2;
6: result := 3;
other result := -1;
end;
end;
iamduo(狄奥):应该可以你那样理解,
beyondtkl(大龙驹宣言:抵制日货,从我做起):不同人的操作的TabSheet是不同的
myy(): 能不能解释一下
linzhengqun(风) :我还没试过,要是试过那我还来问什么啊
不知楼主的delphi是什么版本的,help文件都没带么? ^_^
// 我的意思是说 如果你能确定某些人只能用哪些Page的话 其他不用的完全可以删除
你实在不行 可以用 PCtrl.Pages[x].Name 或者其他的来判断... 不是很复杂..
var
i,j:integer;
ShowS:array[0..100] of TTabSheet;
begin
j:=-1;
for i:=0 to PC.PageCount-1 do
if PC.Pages[i].TabVisible then
begin
inc(j);
ShowS[j]:=PC.Pages[i];
end;
for i:=0 to j do
begin
ShowS[j].PageIndex:=i;
end;
end;