

TabControl与PageControl控件的区别
PageControl控件功能更强大,可以右击添加多个选项卡,在设计时就可以切换不同选项卡可以放置不同的控件,
TabControl控件也可以点Tabs属性添加选项卡,但设计时只有一个界面添加控件,不能切换不同标签添加不同的控件
控制PC控件显示那个页面
PageControl1.ActivePageIndex := 1; //注:从0开始,第一个页面为0,不是1
ShowMessage(IntToStr(PageControl1.ActivePageIndex)); //获取当前活动页面的编号
PageControl常用属性
caption 标题,要在结构窗体中选择指定标签来改,直接点击不好选择
procedure TFastOpenFr.ts2Show(Sender: TObject); //当切换到标签显示时执行功能
PageControl控件本身可以隐藏,但它上面的的TabSheet标签不能指定显示那些及隐藏那些,虽可以设置TabSheet的Visable为False,但只隐藏标签上的内容,不能隐藏标签本身
==========================================================================
TabControl控件用法
TabControl1.TabIndex //获取当前活动标签索引值:
TabControl1.TabWidth := 100; //设置各标签的宽度
TabControl1.Tabs.Count //获取标签总数:
TabControl1.Tabs[TabControl1.TabIndex] //获取当前标签名称或指定值名称
先添加一个固定标签,再查询数据库表指定字段添加为标签
TabControl1.Tabs.Add('全部数据'); //先添加一个固定标签
//再循环添加各个标签
qry1.first;
while not qry1.Eof do
begin
TabControl1.Tabs.Add(qry1.fieldByName('typename').AsString);
qry1.Next;
end;
当点击不同标签时,根据标签名查询数据,让DBGrid显示不同的内容,给TabControl1Change改变事件添加如下代码
//由qry查询数据,给ds1,再将DBGrid连接到ds1
s1:=TabControl1.Tabs[TabControl1.TabIndex]; //获取当前获取标签的文本
s1:=Copy(s1,Pos(' ',s1)+1,Length(s1)); //截取从空格后一个字符开始到文本结束的内容
sql := 'select * from quicklink where typeid=(select id from quicktype where typename='''+s1+''') order by typeid';
if TabControl1.TabIndex = 0 then //如果是第一个标签,输出固定数据
begin
qry2.Close;
qry2.SQL.Clear;
qry2.SQL.Add('select * from quicklink');
qry2.Open;
end
else //如果不是第一个标签,就根据标签内容生成不同的SQL让DBgrid显示不同内容
begin
qry2.Close;
qry2.SQL.Clear;
qry2.SQL.Add(sql);
qry2.Open;
end;