ChinaCock界面控件介绍-CCNavigateTitle

先看一下实际项目中的运行效果,如图,通过品牌的导航栏,显示不同品牌的商品列表。
完全基于ChinaCock控件包中CCNavigateTitle组件实现的,这是一个可视控件,从组件面板上拖放一个到Form上,然后做如下设置:
object CCNavigateTitle1: TCCNavigateTitle
Align = Top Appearence.IndicatorFill.Color = claCadetblue
Appearence.IndicatorStroke.Color = claCadetblue
Appearence.NomalItemTextSettings.FontColor = claCadetblue
Appearence.NomalItemTextSettings.HorzAlign = Center
Appearence.SelectedItemTextSettings.FontColor = claWhite
Appearence.SelectedItemTextSettings.HorzAlign = Center
end
可以看到,对齐方式设置为Top,再通过外观属性设置显示的样式,这样才能更好的适应整体app风格。
接下来,把品牌数据集中的内容,填加到CCNavigateTitle1:
procedure TGoodsDoc.InitBrand;
begin
CCNavigateTitle1.OnActiveItemChanged := nil;//初始化显示内容时不触发 OnActiveItemChanged事件
CCNavigateTitle1.BeginUpdate;
try
CCNavigateTitle1.Items.Clear;//清除所有内容
FBrandDataSet.First;
while not FBrandDataSet.Eof do
begin
with CCNavigateTitle1.Items.Add do//增加一个品牌
begin
ID := FBrandDataSet.FieldByName('FCode').AsString;//品牌编号
Text := FBrandDataSet.FieldByName('FName').AsString;//品牌名称
end;
FBrandDataSet.Next;
end;
finally
CCNavigateTitle1.EndUpdate;
CCNavigateTitle1.ActiveItemIndex := ; //默认显示第一个
CCNavigateTitle1.OnActiveItemChanged := Self.CCNavigateTitle1ActiveItemChanged;//初始化后允许触发 OnActiveItemChanged事件
end;
end;
上面的代码就是循环一个数据集,每条记录做为一个品牌填加到CCNavigateTitle。接下来,实现用户点击CCNavigateTitle中的品牌时,显示对应的商品:
procedure TGoodsDoc.CCNavigateTitle1ActiveItemChanged(Sender: TObject;
APreviousItem, AActiveItem: TCCNavigateTitleItem);
begin
inherited;
if not Assigned(APreviousItem) then Exit; FBrandDataSet.Locate('FCode', AActiveItem.ID, []);
QueryBrand(AActiveItem.ID);//按品牌查询商品并利用Listview显示 end;
这里有一个小问题要注意,就是在调用InitBrand时,尽管避免触发 OnActiveItemChanged事件,但实际上因为动画延迟的原因,还是会触发该事件,所以这里使用了这行代码来避免:
if not Assigned(APreviousItem) then Exit;
上面的实现,是运行期动态为CCNavigateTitle加载的导航内容,实际上,作者还提供了Items属性,利用他可以在IDE中直接填写导航栏的内容。
也许你要问,这个控件什么情况下需要用他来实现界面呢?
一句话:你要导航的内容超过屏幕的显示宽度。
为什么?因为CCNavigateTitle支持手势的左右滑动,用户可以左右滑动,来显示看不到的内容。

上图是这个控件的属性面版,主要的属性来标记出来了。用起来非常简单,效果确是专家级的!谁用谁知道了!
ChinaCock界面控件介绍-CCNavigateTitle的更多相关文章
- ChinaCock界面控件介绍-CCLoadingIndicator
这是一个显示等待状态的控件,当在线程中执行一个稍长时间的任务,需要显示一个等待过程,免得让用户不知app在做什么?避免用户寂寞. 先看看这个控件的属性说明: BackgroundTransparenc ...
- ChinaCock界面控件介绍-TCCYearMonthSelector
Delphi原生控件支持日期的选择,但对于只选择年月的情况,则没有好的实现.TCCYearMonthSelector正是为解决这个问题而产生的.看看运行效果图: 用法一如即往的简单,这是一个不可视控件 ...
- ChinaCock界面控件介绍-TCCImageViewerForm
有多个图片,左右滑动可以切换,通过手势还可以放大.缩小查看,象常见的相册,就是这样子实现效果. 现在,我们有了TCCImageViewerForm组件,也可以轻松实现这样的场景应用. 现在看看TCCI ...
- ChinaCock界面控件介绍-CCButton
即将发布的ChinaCock新版本,将带来一个CCButton控件,实现可视按钮.Delphi原生的Button,在上面滑动后,当释放手指时会误触发OnClick事件,这不是我们想要的结果,CCBut ...
- ChinaCock界面控件介绍-CCSystemBar
Android 4.4之后谷歌提供了沉浸式全屏体验, 在沉浸式全屏模式下, 状态栏. 虚拟按键动态隐藏, 应用可以使用完整的屏幕空间, 按照 Google 的说法, 给用户一种 身临其境 的体验.而A ...
- ChinaCock界面控件介绍-TCCBarcodeCreator
条码生成器,可以生成各种条码,包括二维码.这是一个不可视控件.用起来依旧简单. 属性说明: BarCodeColor:生成条码的颜色 BarcodeFormat:生成条码的类型,支持的条码类型: Bo ...
- ChinaCock界面控件介绍-CCGridPictureEditor
CCGridPictureEditor如其名,网格图片编辑控件,实现利用一个网格来显示多张图片的缩略图,这是一个非常实用的控件,实现类似微信朋友圈中发布多张图片的功能. 在没有这个控件之前,我都是用D ...
- ChinaCock界面控件介绍-CCNewsSilder
上图是控件包里的Demo运行效果,轮播新闻图片. 这个控件用起来简单,拖放一个CCNewsSiler到Form上,设置Align为Top,再设置好高度,然后用代码加载图片: procedure TFo ...
- ChinaCock打印控件介绍-TCCFujitsuPrinter实现蓝牙针式打印
项目中遇到,要蓝牙针式打印机,用手机打印表单.感谢专家,对厂家提供的SDK进行了封装,实现利用Delphi开发出这一功能. 现在来看看,如何利用这一控件实现打印过程: procedure startS ...
随机推荐
- Luffy之Xadmin以及首页搭建(轮播图,导航)
1. 首页 1.1 轮播图 admin站点配置支持图片上传 pip install Pillow 默认情况下,Django会将上传的图片保存在本地服务器上,需要配置保存的路径.我们可以将上传的文件保存 ...
- 00-自测4. Have Fun with Numbers
Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 to 9, wit ...
- java的同步实现
在java编程中,经常需要用到同步,而同步的实现使用最多的就是synchronized关键字了. synchronized关键字涉及到“锁”的概念,首先先了解一下相关锁的知识. java的内置锁:每个 ...
- UI基础四:简单的assign block
经常会有需求让在标准的order加个assign block,那就来简单说一下: 1.创建assign block组件ZXXXXXX 2.添加BTORDER节点和GUID属性 3.创建表视图(可配置, ...
- Failed to stop iptables.service: Unit iptables.service not loaded.解决方法
CentOS7中执行 service iptables start/stop 会报错Failed to start iptables.service: Unit iptables.service fa ...
- Node.js的环境搭建
Node.js 可以理解为服务端的JavaScript.是基于Chrome JavaScript 运行时的一个平台. 是一个事件驱动I/O,基于Google V8 引擎,执行起来速度特别快,性能非常好 ...
- Oracle 用户,角色,权限等
权限管理是 Oracle 系统的精华,不同用户登录到同一数据库中,可能看到不同数量的表,拥有不同的权限.Oracle 的权限分为系统权限和数据对象权限,共一百多种,如果单独对用户授权,很囧,有一些用户 ...
- Oracle表空间状态
1.表空间只读 查看当前表空间状态 SYS@userdata>column file_name format a60 SYS@userdata>column tablespace_name ...
- openssh允许root用户登录
openssh默认是不允许root用户登录的,未改配置直接以正确的root账号密码登录会提示用户名密码错误之类. 好消息是openssh配置十分清晰,基本所有的服务端配置都在/etc/ssh/sshd ...
- 套接字编程,建立连接connect,绑定套接字bind
1.建立连接 int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); 参数sockfd是由函数socket创建 ...