AlphaControls 控件 菜单的附加功能
AlphaControls 控件 菜单的附加功能
AlphaControls 控件 使用标准的TMainMenu TPopupMenu控件,队原有功能外,其菜单ITEM项,具有的附加功能:
一、菜单项组的标题(附加功能)
1、项目中的多行文本
2、附加垂直信息栏
3、菜单中字体的全局更改
4、可定制的 alpha 混合效果
5、附加到表单的系统菜单
见下图
上述功能,通过OnGetPopupItemData事件体现。
二、TsSkinManager.OnGetPopupItemData事件
该事件发生在绘制弹出菜单之前,并允许为每个菜单项定义字体。更改字体大小时会自动计算项目的高度。
procedure TMainFrm.sSkinManager1GetPopupItemData(Item: TMenuItem;
State: TOwnerDrawState; ItemData: TacMenuItemData);
参数:
Item 当前菜单项
State 当前菜单项的状态
ItemData 包含绘图所需数据的结构。此结构包含 Font 属性,计划添加更多属性。
三、菜单项组的标题
如果 Caption = "-",则在标准菜单中绘制分隔线。在 AlphaControls 中添加了将菜单项绘制为标题的其他可能性。标题应在开头和结尾都有“-”符号。
四、项目中的多行文本
菜单项目文本国,如果包含回车+换行的组合(#13#10),菜单项的文本将自动换行。
五、附加垂直信息栏
设置TsSkinManager.MenuSupport.UseExtraLine属性为True,启用在弹出菜单中显示附加垂直信息行。如果启用此属性,则将在所有弹出菜单上绘制此线。使用 OnGetMenuExtraLineData 事件,我们可以定义哪些菜单应该有一条垂直线。此外,我们可以在那里定义文本和字形。
在绘制弹出菜单之前,调用TsSkinManager.OnGetMenuExtraLine事件。
procedure TMainFrm.sSkinManager1GetMenuExtraLineData(FirstItem: TMenuItem;var SkinSection, Caption: String; var Glyph: TBitmap;var LineVisible: Boolean);
variGlyphSize: integer;function GetSectionTextColor: TColor; // Get text color for colorizing of glyph received from CharImageListvarNdx: integer;beginNdx := sSkinManager1.GetSkinIndex(SkinSection);if Ndx >= 0 thenResult := sSkinProvider1.SkinData.CommonSkinData.gd[Ndx].Props[0].FontColor.ColorelseResult := clBlack;end;beginLineVisible := True; // External line is visibleCaption := 'SKin MenuExt'; // External line Text iGlyphSize := ScaleInt(22, sSkinProvider1.SkinData); //External line 字符Size Glyph := CharImageList16.CreateBitmap32Color(7, iGlyphSize, iGlyphSize, GetSectionTextColor, iGlyphSize); //External line图形
end;
LineVisible 属性为 True,则垂直信息栏将显示在当前菜单中。
FirstItem 参数指向此弹出菜单的第一个菜单项。关注此选项,您可以启用或禁用额外的行
SkinSection皮肤部分,可以更改组件的外观
Caption标题
Glyph字形
TsSkinManager.MenuSupport.ExtraLineFont指定将用于文本绘图的字体 。
TsSkinManager.MenuSupport.ExtraLineWidth附加垂直信息栏宽度。
五、定义菜单中(全局)字体
我们可以定义将在应用程序的所有弹出菜单中使用的字体。
使用TsSkinManager.MenuSupport.Font更改菜单中的字体。
如果TsSkinManager.MenuSupport.CustomFont属性为 True,然后在应用程序的所有皮肤菜单中使用字体。
六、可定制的alphablend效果(alpha混合)
TsSkinManager.MenuSupport.AlphaBlend属性允许定义弹出菜单透明度。如果属性值为 0,则菜单完全透明。当值为 255(默认值)弹出菜单不透明。
七、Form系统菜单附件
TsSkinProvider组件具有 SysSubMenu 属性。我们可以在那里定义一个弹出菜单,该菜单将附加到表单的系统菜单中。
八、替换系统阴影
TsSkinManager.MenuSupport.SkinnedShadows属性用自定义蒙皮阴影替换系统阴影。
菜单项通常会自动处理和蒙皮。如果在运行时添加了新菜单项,则应使用 HookPopupMenu 过程(添加后)对其进行初始化。例子:
sSkinManager1.SkinableMenus.HookPopupMenu(PopupMenu1, sSkinManager1.Active);
AlphaControls 控件 菜单的附加功能相关推荐
- AlphaControls 控件 TsFrameBar 创建下拉式多级导航菜单
AlphaControls 控件 TsFrameBar 创建下拉式多级导航菜单 TsFrameBar控件是创建一个下拉菜单的工具块. TsFrameBar控件本身,可以通过创建TITEMS,自 ...
- AlphaControls 控件 动画
AlphaControls 控件 动画 AlphaControls 一组支持皮肤 (AlphaSkins) 的常见组件和一些独特组件,以及一些附加功能.所有皮肤元素都可以有自己的属性, ...
- AlphaControls 控件Delphi使用
AlphaControls 控件Delphi使用 一.AlphaControls初始化(MainFrm加入AlphaControls) 1.制定ini文件 procedure WriteIni_Ski ...
- AlphaControls 控件 TsMagnifier 放大镜
AlphaControls 控件 TsMagnifier 放大镜 AlphaControls 控件 TsMagnifier组件,是一个窗口放大镜,放大镜的位置默认在窗口的中心,通过鼠标可以移动放大镜的 ...
- android点击隐藏控件,Android编程实现点击EditText之外的控件隐藏软键盘功能
本文实例讲述了Android编程实现点击EditText之外的控件隐藏软键盘功能.分享给大家供大家参考,具体如下: 工具类 ... public static void hideKeyboard(Co ...
- SAP UI5 应用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除功能试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...
- 露雨资源库三(第一个.net2.0软件)-为控件增加自动完成功能
前面我写过"露雨资源库"的第一篇和第二篇,分别介绍了界面设计和设计思路. 链接如下: 露雨资源库(第一个.net2.0软件)一 http://luyu.cnblogs.com/ar ...
- ehlib的DBGridEh控件中使用过滤功能的方法
关于在ehlib的DBGridEh控件中使用过滤功能的方法 在ehlib的DBGridEh控件中使用过滤功能很方便,但使用过程中有几个容易被忽略的地方,它曾经困绕了我很长时间,过滤功能就是用不起来. ...
- android缩放组件,Android控件实现图片缩放功能
1 简介 先来一张效果图 TIM图片.gif 上图中灰色的一块是ImageView控件,ImageView中的图片进行左右上下移动,以及双指缩放. 对于android控件的缩放移动,点这里----an ...
最新文章
- OpenMP参考链接
- 谈“80后”程序员为什么找不到工作? [转]
- 中国企业海外人才发展白皮书
- vue element menu侧边导航栏 数据渲染
- 新房装修,家里WiFi怎么弄?
- 菜鸟学做——三层交换综合模拟实验【1】
- QGroundControl实现多机控制
- [转]《谁让你是飞鸟我是鱼》by(晨曦)
- Flutter之Widget构建过程详解
- 【iCore4 双核心板_uC/OS-II】例程八:消息邮箱
- Four-tuples 山东省赛F题
- java xstream json_详解XML,Object,Json转换与Xstream的使用
- Java集合分页公式
- 沙龙回顾 | 从开发平台到智能供应链,AI技术如何推动企业智能化升级?
- 拓嘉辰丰电商:一个营业执照支持开多少家店铺
- 汇编idiv带符合除法指令。。。。
- 2022夏暑假每日一题(八)
- 正在连接到192.168.1.118 不能打开到主机的连接, 在端口 1521: 连接失败
- JavaScript最简单的方法实现简易的计算器
- 代号海岸线如何用电脑玩 代号海岸线PC电脑版玩法教程
热门文章
- 怎样去除口臭?先要了解其形成原因
- 采用链接分配方式进行外存分配时,可采用的两种形式及其特点。假定磁盘块大小为4K,对于128G的硬盘,其文件分配表FAT需占用多少存储空间?
- 学无止境:了解主流的DBA认证考试
- 复旦计算机系本硕连读几年,总算晓得比较好的本硕连读的大学及专业
- 如何识别哭泣csdn_网络表情NLP(一)︱颜文字表情实体识别、属性检测、新颜发现
- [转] 用友NC二次开发问题汇总【转】
- 如何给女朋友买个趁心的笔记本?
- 【C++11】右值引用与移动构造、万能引用与完美转发
- ESP8266开发之旅 网络篇③ Soft-AP——ESP8266WiFiAP库的使用
- [转]乐死我了,怎么样成为一个全栈程序员(Full Stack Developer),附我想专注的语言...