AlphaControls 控件 TsFrameBar 创建下拉式多级导航菜单
AlphaControls 控件 TsFrameBar 创建下拉式多级导航菜单
TsFrameBar控件是创建一个下拉菜单的工具块。
TsFrameBar控件本身,可以通过创建TITEMS,自身的框架中,创建所需若干按键,组成按键式工具条,形成一级菜单。
每个按键可以包含一个TRFrame框架的子菜单;
这样,TsFrameBar可以创建目前流行的下拉式二级菜单。
一、窗口创建下拉菜单
1、窗口放入一个TsPenal容器,TsPenal放入一个TsFrameBar(取名sFrameBar1)
2、加入TsCharImageList(取名CharImageList16)
CharImageList16中的图像列表:
3、sFrameBar1.Images属性,指定为CharImageList16
二、sFrameBar1创建ITEM,创建按键
1、鼠标右键点击sFrameBar1,打开“items Edotor..d”对话框
2、addItem
3、为每个ITEM,指定相关属性
(1)Align为 alNone;
(2)Image为3;
(3)Cantion为按键名称;
(4)ShowAttow为True,按键右部显示下拉箭头;
(5)TextAlignmentl为taLeftJustify
三、创建子菜单Frame
1、创建TFrame,为每个Frame,取名TBarPanel_N
2、Frame加入TsSkinProvider
3、加入TsSpeedButton,有几个菜单项,就加入几个TsSpeedButton
4、TsSpeedButton指定属性:
(1)TsSpeedButton排列位置
(2)Caption按键显示文字
(3)指定显示图像
A、Images为MainFrm.CharImageList16
B、ImageIndex为0
C、ImageIndexDesable为-1
D、ImageIndexHot为1
E、ImageIndexPressed为2
F、ImageIndexSelected为2
此翻操作,动态显示图像。按键静态显示“空心五角”,鼠标划过时显示“半心五角”,鼠标按下(或被选择)时显示“实心五角”。
5、为按键指定事件(业务项目)
(1)Uses加入项目的单元
usesShellApi, uMy_COM, sSkinManager, acAnimation,uMainFrm, uJG_1_Frm,uBB_1_Frm;
(2)指定事件
procedure TBarPanel_1.Spnutton_1Click(Sender: TObject);
beginMainFrm.CreateTabSheet(TJG_1_Frm,'机构基本信息','1_1');
end;
6、sFrame完整代码
unit UnitBarPanel_4;
{$I sDefs.inc}interfaceusesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Buttons, ExtCtrls, StdCtrls, Types, sFrameAdapter,sSpeedButton, sGroupBox, acImage, sLabel;typeTBarPanel_4 = class(TFrame)sFrameAdapter1: TsFrameAdapter;Spnutton_0: TsSpeedButton;Spnutton3_1: TsSpeedButton;Spnutton3_2: TsSpeedButton;procedure Spnutton3_1Click(Sender: TObject);procedure Spnutton3_2Click(Sender: TObject);end;implementationusesShellApi,uMy_COM,sSkinManager, acAnimation,uMainFrm,uBed_1_Frm,uOld_Upload_Frm;{$R *.DFM}procedure TBarPanel_4.Spnutton3_1Click(Sender: TObject);
beginMainFrm.CreateTabSheet(TBed_1_Frm,'床位入住率','1_3_1');
end;procedure TBarPanel_4.Spnutton3_2Click(Sender: TObject);
beginMainFrm.CreateTabSheet(TOld_Upload_Frm,'评估上传','1_3_2');
end;end.
7、相关属性
(1)Align 为 alNone
(2)AutoSize 为 True
四、指定sFrameBar1.ITEMs(TsTitleItem)菜单事件
1、OnCreateFrame事件
procedure TMainFrm.sFrameBar1Items0CreateFrame(Sender: TObject;var Frame: TCustomFrame);
beginFrame := TBarPanel_1.Create(nil);
end;
五、效果
上图:菜单项静态显示“空心五角”,鼠标划过时显示“半心五角”,鼠标按下(或被选择)时显示“实心五角”。
六、设置多级下拉菜单
对于二级菜单框架TFrame中的TsSpeedbutton,可以使用TsFrameBar代替(插入一个),仅设置一个TsTitleItem,相应打开一个框架TFrame。
形成多级菜单:
七、TsFrameBar属性(关键)
1、Align 决定菜单被打开的对齐方式
alNone
2、VertScrollBar 垂直活动条
Visible True 显示垂直活动条,建议设置为False,不显示:
3、AutoFrameSize 菜单自动尺寸
设置True
AlphaControls 控件 TsFrameBar 创建下拉式多级导航菜单相关推荐
- Unity游戏开发文档(3.1.2):下拉式音乐选择菜单
前言 该文档为<Unity游戏开发文档(3):Dancing Line>的附属文档,亦可看作是单独的技术总结文档. 目录 综述 构建下拉菜单 填充下拉菜单 切换背景音乐 最终效果 ...
- MFC_C++02_模态对话框,非模态对话框,StaticText静态文本,CEditCtrl控件,ComboBox下拉框,CListCtrl控件,CTreeCtrl 树控件,TabCtrl标签控件
01 模态对话框创建 更改标题名: 菜单栏 --> 视图->工具箱 ,找到工具箱 导入两个按钮: 准备对话框: 插入就可以了,更改名称 双击按钮,可以进入点击事件 创建控件的类:右击-&g ...
- 使用Google 官方的控件SwipeRefreshLayout实现下拉刷新功能
之前做东西的时候,经常会用到下拉刷新的功能,之前大家都在使用Github上的一个很著名的开源项目 PullToRefresh 但是,现在好消息来了,google在19.1版本的support-v4兼容 ...
- android pulldown view,Android控件PullRefreshViewGroup实现下拉刷新和上拉加载
本文实例为大家分享了Android实现下拉刷新和上拉加载更多的具体代码,供大家参考,具体内容如下 先分享下源码:Android实现下拉刷新和上拉加载更多 实现思路:由PullRefreshViewGr ...
- android--------自定义控件ListView实现下拉刷新和上拉加载
开发项目过程中基本都会用到listView的下拉刷新和上滑加载更多,为了方便重写的ListView来实现下拉刷新,同时添加了上拉自动加载更多的功能. Android下拉刷新可以分为两种情况: 1.获取 ...
- 下拉滑动二级导航菜单demo
网页效果,显示主菜单,带你给用户鼠标移至主菜单时会产生下拉菜单,移开隐藏 以下为完整的代码和部分解释 整个父容器为300px,显示50px,鼠标移至主菜单则下拉250px <!DOCTYPE h ...
- python日历下拉框_c#教程之C#日历样式的下拉式计算器实例讲解
https://www.xin3721.com/eschool/python.html 本文介绍了如何在Visual Studio中创建用户控件来显示下拉式计算器,弹出效果类似于日历控件. 介绍 如果 ...
- 菜单向上拉html,模拟select控件,CSS上拉菜单
模拟select控件,CSS下拉菜单 模拟select控件 html,body{height:100%;overflow:hidden;} body,div,form,h2,ul,li{margin: ...
- 帆软报表 填报报表下拉框多级联动
JS实现填报联动自动生成默认值 1.1 应用场景 在实现填报联动的基础上,选择第一个控件值后,其他联动控件可以跟随选择可选范围内的第一个值,效果如下图所示: 1.2 解决思路 在填报页面中,单元格无法 ...
最新文章
- protoc-3.2.0-win32转java文件
- 爬取动态网页(2017年年度豆瓣电影榜单)
- ANDROID开发之SQLite详解
- Multi-Range Read (MRR)原理
- centos 获取硬件序列号_如何在 Linux 上查找硬件规格
- scp命令不会复制隐藏文件
- word 批量转 pdf
- ubuntu虚拟机ping通内网
- 红米ac2100路由器刷入openwrt教程
- 这就是中国80后!!!
- 基于NET Core 的Nuget包制作、发布和运用流程
- RabbitMQ 6种应用场景
- java 数组的扩容,缩容,插入元素,查找元素 详解(通俗易懂)
- 从普通程序员到估值上亿的公司老板,他只用了1年!
- 启发式路径搜索算法介绍
- mysql 枚举字段_MySQL字段中的枚举
- 【机器人学、机器视觉与控制】用工具箱确定D-H参数
- 京东JOS API 接入使用笔记
- 经典的经济、金融、投资书籍
- 篮球社交小程序开发功能
热门文章
- js array formdata_这样写的 JS 代码看着就很舒服
- 名爵如何解除限速_电动车解除限速的方法
- java面向对象期末考试试题_《面向对象程序设计——java》期末考试试题2008a卷.doc...
- 如何快速删除QQ说说内容
- linux下离线安装r语言包,CentOS下离线安装R语言Forecast包
- 记录一些常用软件的bug踩坑及修复策略(长期更新)
- Consolidate Duplicate Conditional Fragments
- PLC--中科博微NCS4000
- AIX如何管理LPP及强制删除LPP
- 如何避免FFT(matlab)计算傅里叶级数与傅里叶变换时存在的混叠(aliasing)和泄露(leakage)问题