昨天在朋友们的帮助下,教我做了这么个效果
我加了一个PageControl1的控件建立了3个TabSheet1,TabSheet2,TabSheet3,现在我用3个按钮a,b,c来控制哪个显示,哪个隐藏掉
比如我点击按钮a,则TabSheet1显示,其他两个不显示。
当我点击b,则TabSheet2显示,其他两个不显示。
点击c,效果是一样的
方法如下:
设置几个按钮的tag,比如从1到3共用事件
procedure TForm1.Button1Click(Sender: TObject);
var
tmpTag:integer;
idx:inetger;
tmpTS:TTabsheet;
begin
tmpTag:=TButton(Sender).tag;
for idx:=1 to 3 do
begin
tmpTS:=TTabsheet(FindComponent('Tabsheet'+IntToStr(idx)));
tmpTS.Visible:=(tmpTS.tag=tmpTag);
end;
end;
可是在每个里面的内容却无法显示,比如我在tabsheet1里放了一个edit,在tabsheet2里放了一个grid,可是显示不出来,怎么回事
我加了一个PageControl1的控件建立了3个TabSheet1,TabSheet2,TabSheet3,现在我用3个按钮a,b,c来控制哪个显示,哪个隐藏掉
比如我点击按钮a,则TabSheet1显示,其他两个不显示。
当我点击b,则TabSheet2显示,其他两个不显示。
点击c,效果是一样的
方法如下:
设置几个按钮的tag,比如从1到3共用事件
procedure TForm1.Button1Click(Sender: TObject);
var
tmpTag:integer;
idx:inetger;
tmpTS:TTabsheet;
begin
tmpTag:=TButton(Sender).tag;
for idx:=1 to 3 do
begin
tmpTS:=TTabsheet(FindComponent('Tabsheet'+IntToStr(idx)));
tmpTS.Visible:=(tmpTS.tag=tmpTag);
end;
end;
可是在每个里面的内容却无法显示,比如我在tabsheet1里放了一个edit,在tabsheet2里放了一个grid,可是显示不出来,怎么回事
begin
PageControl1.TabIndex := TButton(Sender).Tag - 1;
end;
var
tmpTag:integer;
idx:inetger;
tmpTS:TTabsheet;
begin
tmpTag:=TButton(Sender).tag;
for idx:=1 to 3 do
begin
tmpTS:=TTabsheet(FindComponent('Tabsheet'+IntToStr(idx)));
tmpTS.Visible:=(idx=tmpTag);//这里应该是idx
end;
end;
var
tmpTag:integer;
idx:inetger;
tmpTS:TTabsheet;
begin
tmpTag:=TButton(Sender).tag;
for idx:=1 to 3 do
begin
tmpTS:=TTabsheet(FindComponent('Tabsheet'+IntToStr(idx)));
tmpTS.TabVisible:=(idx=tmpTag);//再改一下,应该使用TabVisible
end;
end;
Specifies whether the tab of the TTabSheet object appears in its TPageControl.
而visible 时表示tabsheet 内容的可见性。
dulei115() 做法的很正确。