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 创建下拉式多级导航菜单相关推荐

  1. Unity游戏开发文档(3.1.2):下拉式音乐选择菜单

    前言      该文档为<Unity游戏开发文档(3):Dancing Line>的附属文档,亦可看作是单独的技术总结文档. 目录 综述 构建下拉菜单 填充下拉菜单 切换背景音乐 最终效果 ...

  2. MFC_C++02_模态对话框,非模态对话框,StaticText静态文本,CEditCtrl控件,ComboBox下拉框,CListCtrl控件,CTreeCtrl 树控件,TabCtrl标签控件

    01 模态对话框创建 更改标题名: 菜单栏 --> 视图->工具箱 ,找到工具箱 导入两个按钮: 准备对话框: 插入就可以了,更改名称 双击按钮,可以进入点击事件 创建控件的类:右击-&g ...

  3. 使用Google 官方的控件SwipeRefreshLayout实现下拉刷新功能

    之前做东西的时候,经常会用到下拉刷新的功能,之前大家都在使用Github上的一个很著名的开源项目 PullToRefresh 但是,现在好消息来了,google在19.1版本的support-v4兼容 ...

  4. android pulldown view,Android控件PullRefreshViewGroup实现下拉刷新和上拉加载

    本文实例为大家分享了Android实现下拉刷新和上拉加载更多的具体代码,供大家参考,具体内容如下 先分享下源码:Android实现下拉刷新和上拉加载更多 实现思路:由PullRefreshViewGr ...

  5. android--------自定义控件ListView实现下拉刷新和上拉加载

    开发项目过程中基本都会用到listView的下拉刷新和上滑加载更多,为了方便重写的ListView来实现下拉刷新,同时添加了上拉自动加载更多的功能. Android下拉刷新可以分为两种情况: 1.获取 ...

  6. 下拉滑动二级导航菜单demo

    网页效果,显示主菜单,带你给用户鼠标移至主菜单时会产生下拉菜单,移开隐藏 以下为完整的代码和部分解释 整个父容器为300px,显示50px,鼠标移至主菜单则下拉250px <!DOCTYPE h ...

  7. python日历下拉框_c#教程之C#日历样式的下拉式计算器实例讲解

    https://www.xin3721.com/eschool/python.html 本文介绍了如何在Visual Studio中创建用户控件来显示下拉式计算器,弹出效果类似于日历控件. 介绍 如果 ...

  8. 菜单向上拉html,模拟select控件,CSS上拉菜单

    模拟select控件,CSS下拉菜单 模拟select控件 html,body{height:100%;overflow:hidden;} body,div,form,h2,ul,li{margin: ...

  9. 帆软报表 填报报表下拉框多级联动

    JS实现填报联动自动生成默认值 1.1 应用场景 在实现填报联动的基础上,选择第一个控件值后,其他联动控件可以跟随选择可选范围内的第一个值,效果如下图所示: 1.2 解决思路 在填报页面中,单元格无法 ...

最新文章

  1. protoc-3.2.0-win32转java文件
  2. 爬取动态网页(2017年年度豆瓣电影榜单)
  3. ANDROID开发之SQLite详解
  4. Multi-Range Read (MRR)原理
  5. centos 获取硬件序列号_如何在 Linux 上查找硬件规格
  6. scp命令不会复制隐藏文件
  7. word 批量转 pdf
  8. ubuntu虚拟机ping通内网
  9. 红米ac2100路由器刷入openwrt教程
  10. 这就是中国80后!!!
  11. 基于NET Core 的Nuget包制作、发布和运用流程
  12. RabbitMQ 6种应用场景
  13. java 数组的扩容,缩容,插入元素,查找元素 详解(通俗易懂)
  14. 从普通程序员到估值上亿的公司老板,他只用了1年!
  15. 启发式路径搜索算法介绍
  16. mysql 枚举字段_MySQL字段中的枚举
  17. 【机器人学、机器视觉与控制】用工具箱确定D-H参数
  18. 京东JOS API 接入使用笔记
  19. 经典的经济、金融、投资书籍
  20. 篮球社交小程序开发功能

热门文章

  1. js array formdata_这样写的 JS 代码看着就很舒服
  2. 名爵如何解除限速_电动车解除限速的方法
  3. java面向对象期末考试试题_《面向对象程序设计——java》期末考试试题2008a卷.doc...
  4. 如何快速删除QQ说说内容
  5. linux下离线安装r语言包,CentOS下离线安装R语言Forecast包
  6. 记录一些常用软件的bug踩坑及修复策略(长期更新)
  7. Consolidate Duplicate Conditional Fragments
  8. PLC--中科博微NCS4000
  9. AIX如何管理LPP及强制删除LPP
  10. 如何避免FFT(matlab)计算傅里叶级数与傅里叶变换时存在的混叠(aliasing)和泄露(leakage)问题