AlphaControls 控件 TsFrameBar 创建下拉式多级导航菜单

news/2024/11/29 10:56:52/

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


http://www.ppmy.cn/news/479615.html

相关文章

AlphaControls TsAlphaHints 控件

AlphaControls TsAlphaHints 控件 一、功能 TsAlphaHints控制应用程序中工具提示的绘制,带或不带皮肤。为了让这个组件工作,将他放在应用程序的主要形式中就足够了。他已经有一种基本样式,此样式已配置并作为默认样式使用。就这样&#…

AlphaControls TsSkinManager 控件

TsSkinManager 该组件设计用于集中管理程序换肤过程。对于这个组件的工作,定义一个使用过的皮肤并将 Active 属性设置为 True 就足够了。 一、皮肤与应用程序一起部署的方式: 1、将皮肤添加到 InternalSkins 列表中,我们称它们为“内部”…

Winform:自定义滚动条——可自定义皮肤

最近做了一个可自定义皮肤的滚动条, 直接上效果图: 其中ScrollStyle属性中内置了3中样式和可自定义皮肤的样式(Custom): 下面为三种内置样式的效果图: 下面是选择Custom样式后自定义皮肤: 只要…

如何更改CSDN博客皮肤

注:本文转自CSDN博客怎么修改皮肤背景? 因为搜了很多个操作后,发现这个最简单有效地快速更改! 步骤: 管理博客 --> 博客设置 –>鼠标箭头移至当前模板(有绿色小勾标志的那个)–>鼠标右键 --> 检查 or【审查…

Linux终端光标变成黑块,ubuntu中鼠标下的小黑块处理方法

Ubuntu下屏幕小黑块 在ubuntu系统上安装了搜狗输入法后, 屏幕上会出现一个小黑块 。 这个怎么处理呢? 查了很多 BAIDU , 以为是显卡驱动的问题, 经过多次安装证实与显卡驱动无关。 我的是AMD ATI 的显卡: 安装方法 经…

c#-winform自定义窗体皮肤(无边框皮肤)

winform开发的时候,因为自身窗体都是window窗体风格,可操作性不大,往往不能根据UI提供的方案进行界面的UI搭建。因此会采用自定义的窗体作为父类窗体,将所有界面统一风格并避免代码重写。当然,如果需要实现很漂亮的界面…

CSDN博客怎么修改皮肤背景?

步骤:管理博客 --> 博客设置 –>鼠标箭头移至当前模板(有绿色小勾标志的那个)–>鼠标右键 --> 检查 –>找到checked“checked” readonly 将这段代码剪切后 –>粘贴到你想要的皮肤模板中的id的后面 完成上述步骤后,点击如下图所示 保…

完美破解CSDN的博客皮肤

1.打开csdn的博客设置界面,如下: 2.点开F12查看源码界面, 1.点一下左边的图标,然后在将鼠标放到主题上,下面的代码会定位到相应的位置. 2.我们发现主题全是一个个div的标签,名字都是opt-skin-box每个div代表一个主题. 3.找到里面的value与id属性 3.改写value与id值:将你要设置的…