AlphaControls 控件 菜单TMainMenu TPopupMenu

AlphaControls 控件 菜单TMainMenu TPopupMenu

     AlphaControls华丽的菜单:

   

     相关知识:

     一、控件和对象

    1、TMainMenu
    用于Form窗口的主菜单。

    2、TPopupMenu
    用于控件或TPanel的右键快捷菜单。

    3、TMenuItem
   TMainMenu、TPopupMenu项目的菜单ITem是TMenuItem。

    4、TSubItem
   TMainMenu、TPopupMenu子菜单ITem是TSubItem。

    5、TsSkinManager

    6、TsSkinProvider

    7、TsCharImageList

     保存供菜单项,选用的图像。在ImageIndex中指定图像的序号。

     二、创建菜单
    1、加入MainMenu或PopupMenu
    2、选择MainMenu或PopupMenu,加入TMenuItem

    (1)insert加入子菜单TMenuItem
    (2)creat SnbMenu(子菜单)

    3、TMenuItem菜单项目的类型,Button和Radio二种,默认Button,当设置RadioItemo True, 菜单项目类型为Radio。
    4、Caption 标题的设置

    (1)用于分隔,信息提示,距离分隔

       A、字符"-",划线分隔块
       B、空字符"",空白分隔块
    (2)菜单项目,"菜单名",
    (3)子菜单引导,"菜单名", 

    5、TMenuItem的OnClick是菜单项目的鼠标点击的响应事件

     三、MainMenu、PopupMenu属性
    autoCheck 
    AutoHotKeys
    AutoLineReduction
    bitmap
    Break
    Caption
    Checkcd
    Default
    Enabled
    GroupIndex
    HelpContext
    Hint
    ImageIndex
    Name
    RadioItem   
    ShortCut
    subMenuItemages
    Tag
    Visible

     四、AlphaControls的适用
     AlphaControls支持对MainMenu、PopupMenu的美化。

    1、在MainForm主窗口,加入TsSkinManager和TsSkinProvider,对sSkinManager1进行相关参数设置。

      2、让菜单项目与TsSkinManager关联:

   (1)MainMenu、PopupMenu的OnPopup事件

procedure TMainFrm.PopupMenu1Popup(Sender: TObject);
begin
   sSkinManager1.SkinableMenus.HookPopupMenu(PopupMenu1, sSkinManager1.Active);
end;

     3、加入 TsCharImageList,让TMainMenu TPopupMenu的参数Images关联:

       五、加入菜单主标题(Extra Line另外行)

       AlphaControls支持对MainMenu、PopupMenu加入主标题(Extra Line另外行),让菜单明确主题,显得更加美观。特别是对系统的设置菜单,尤为如此。

    1、设置MumeSupport相关属性

     skinnedshadows设置是否菜单阴影,ShowAccelCharAlways设定允许标签内文本是否显示画有下划线的快捷键值,UseExtraLine是否使用Extra Line。

     通常菜单(UseExtraLine False):

     加了(Extra Line)菜单

     上图中带有主标题(剪头)的菜单,只要在TsSkinManager.OnsGetMenuExtraLineData事件中,加入代码,就要出现主标题。

     但是,目前主标题(Extra Line),设置不足之处:

     一是主标题(Extra Line)显示英文字符,由下向上排序,目前不支持汉字,显示乱码,实际使用空字符,仅显示一个图也很美观。

     二是对子窗口的菜单,不支持。在.OnsGetMenuExtraLineData事件中,不能引用子窗口中的PopupMenu。本人使用多种方法,末能成功,子窗口只能做出(无 Extra Line)菜单:

     (Extra Line)主标题,要使用sSkinManager1.OnsGetMenuExtraLineData事件:

    (1)sSkinManager1.OnsGetMenuExtraLineData事件

procedure TMainFrm.sSkinManager1GetMenuExtraLineData(FirstItem: TMenuItem;
  var SkinSection, Caption: String; var Glyph: TBitmap;
  var LineVisible: Boolean);

var
  iGlyphSize: integer;

  function GetSectionTextColor: TColor; // Get text color for colorizing of glyph received from CharImageList
                                        // 获取从CharImageList收到的字形着色的文本颜色
  var
    Ndx: integer;
  begin
    Ndx := sSkinManager1.GetSkinIndex(SkinSection);
    if Ndx >= 0 then
      Result := sSkinProvider1.SkinData.CommonSkinData.gd[Ndx].Props[0].FontColor.Color
    else
      Result := clBlack;
  end;

begin
  LineVisible := True;                                                     // External line is visible  外部线可见
  iGlyphSize := ScaleInt(22, sSkinProvider1.SkinData);
  if(FirstItem = PopupMenu1.Items[0]) then begin
    Caption := ' ';
    Glyph := CharImageList16.CreateBitmap32Color(7, iGlyphSize, iGlyphSize, GetSectionTextColor, iGlyphSize);
  end
  else
    if (FirstItem = PopupMenu2.Items[0]) then begin
      Caption := ' ';
      Glyph := CharImageList16.CreateBitmap32Color(31, iGlyphSize, iGlyphSize, 
GetSectionTextColor, iGlyphSize); // 参数31指定显示图标Index
    end
    else
      LineVisible := False;
end;

    (2)sSkinManager1.OnGetPopupItemData事件

   

procedure TMainFrm.sSkinManager1GetPopupItemData(Item: TMenuItem;
  State: TOwnerDrawState; ItemData: TacMenuItemData);
begin
  if (Item = Builtinskins1) or (Item = miAlphaColordialog1) then begin  // 指定专题变化字体
    ItemData.Font.Style := [fsBold];
    ItemData.Font.Size := ItemData.Font.Size + 2;
  end;
end;

        在事件中,可以加入对菜单的字体尺寸进行相关设置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AlphaControls是一款强大的Delphi和C++ Builder控件库,具有丰富的界面设计和功能。以下是AlphaControls的安装说明。 首先,我们需要下载AlphaControls。可以在官方网站上找到最新版本的AlphaControls,并下载安装程序。 下载完成后,运行安装程序。安装程序会引导我们完成安装过程。我们需要注意选择正确的Delphi或C++ Builder版本,并选择相应的安装路径。 安装程序会将AlphaControls的文件和组件复制到我们选择的安装路径下。一般情况下,AlphaControls会安装到Delphi或C++ Builder的组件目录中。 安装完成后,我们需要在Delphi或C++ Builder中进行一些设置才能正常使用AlphaControls。 首先,我们需要在IDE中添加AlphaControls的路径。打开Delphi或C++ Builder的环境选项,找到Library选项卡。在Library path中添加AlphaControls的路径。 接下来,我们需要在工具栏中添加AlphaControls控件控件栏按钮。在Delphi或C++ Builder的环境选项中的Palette选项卡中,点击"New..."按钮。选择AlphaControls控件库,添加控件栏按钮并保存设置。 完成以上设置后,我们就可以在Delphi或C++ Builder的设计界面中使用AlphaControls控件了。 我们可以在控件栏中找到AlphaControls控件,将其拖拽到窗体上。然后,通过属性面板进行进一步的设计和配置。 总结起来,AlphaControls的安装过程包括下载安装程序、运行安装程序并选择安装路径、进行环境设置以及在设计界面使用AlphaControls控件。遵循以上步骤,我们就可以成功安装和使用AlphaControls

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值