AlphaControls  TsAlphaHints 控件

一、功能
    TsAlphaHints控制应用程序中工具提示的绘制,带或不带皮肤。为了让这个组件工作,将他放在应用程序的主要形式中就足够了。他已经有一种基本样式,此样式已配置并作为默认样式使用。就这样!现在将在 Active 属性为 True 时自动绘制提示。
    可以通过更改组件设置来制作各种样式。为了管理样式,有一个Templates 属性 的特殊设计时编辑器。(参见Png模板的配置)
    与 TsHintManager 组件不同,TsAlphaHints 管理器可以绘制任何形状的提示。TsHintManager 已过时并保留在包中以保持兼容性。组件 TsAlphaHints 更有希望和更可取地使用。
    TsAlphaHints 提示可以使用 Html 标签的文本格式,还可以显示图像和图表,也可以产生动画提示。

该组件可以应用用户定义的样式,并且可以使用当前皮肤中定义的样式(如果它处于活动状态)。应该启用 UseSkinData属性以使用来自皮肤的样式。每个皮肤都有“提示”部分,其中定义了用于绘图的数据。

ShowHint和HideHint过程可用于提示窗口的强制显示和隐藏。
    RepaintHint过程刷新打开的提示窗口。通常在数据更改期间使用此程序并允许创建动画效果。
    DefaultMousePos属性指定默认情况下将使用的气球状提示中箭头的位置。
    当提示窗口已经显示时,只读IsHintShowing属性为 True。

二、相关属性事件
    Active            (活动)该属性指定组件何时处于活动状态并且必须重新定义标准提示窗口。
    Animated    (动画)用于启用/禁用提示窗口动画的属性。
    AutoAlignment  (自动对齐)启用提示窗口的自动定位。
    HTMLMode      (HTML模式)属性允许通过 HTML 标记格式化文本。
    MaxWidth      (最大宽度)确定提示寡妇的最大宽度。
    OnHideHint     (隐藏提示事件)隐藏提示时发生。
    OnMeasure     (窗口变化测量事件)在计算提示窗口大小后发生。
    OnPaint     (窗口绘制事件)在提示窗口主体绘制之后发生。
    OnShowHint     (显示提示事件)在显示提示窗口之前发生。
    PauseHide     (暂停隐藏)如果鼠标没有从控件或菜单中移动,则指定在隐藏帮助提示之前要等待的时间间隔。
    SkinSection     (皮肤部件)包中所有控件的公共属性。
    TemplateName     (模板名称)属性指定将用于提示显示的模板。
    Templates     (模板)属性保留可在应用程序中使用的提示模板。
    TextAlignment (文本对齐)允许在提示窗口中对齐文本信息。
    UseSkinData     (使用皮肤数据)属性定义提示窗口绘图的模式。

注意OnShowHint事件
    OnShowHint事件是允许使用一组参数来控制提示显示的过程:
      HintStr定义将显示的文本
      CanShow允许或禁止显示提示。允许在应用程序执行期间根据特定条件禁止显示提示。
      HintInfo包含 THintInfo 记录,特别是允许指定提示窗口的位置。
      Frame允许在提示窗口中绘制 TGraphicControl`s。

三、提示中的超文本
    文本格式可以使用标准 Html 标签,例如FONT、B、I、U。标记应直接添加到控件的 Hint 属性,如果启用了 HTMLMode 属性,它们在输出中不可见。
    BR标签 可以设置强制换行符
    支持©、™等特殊字符。

四、在提示中使用框架
    OnShowHint 事件包含Frame :TFrame 参数。如果我们创建一个包含 TGraphicControl 的框架,那么这些控件将被复制到提示窗口。此功能允许将文本与图像、图形等一起显示。
    在提示关闭期间,框架会自动销毁。
    让我们用框架创建一个提示:
    1、在窗体上创建一个带有 TsAlphaHints 组件的应用程序。创建一个带有组件的框架,继承自 TGraphicControl。控件应放置在提示中。它们可以根据需要进行排列,但我们选择最简单的变体。两个按钮被放置到表单中以进行测试并定义了 Hint 属性。ShowHint 属性为 True。
    2、将处理程序添加到 OnShowHint 事件。在那里创建一个不可见的框架(Parent = nil)。更改标签的文本,从 HintStr 参数中获取他的文本。

uses Unit1;
procedure TForm2.sAlphaHints1ShowHint(var HintStr: string; var CanShow: Boolean;var HintInfo: THintInfo; var Frame: TFrame);
begin
  Frame := TFrame1.Create(Application);
  TFrame1(Frame).Label1.Caption := HintStr;
end;

3、就是这样,我们可以运行项目并查看结果。

4、正如我们所见,有一个问题。在于无论文本宽度如何,窗口宽度都保持不变。我们通过向 OnShowHint 事件处理程序添加一行来解决此问题。我们这里以Label的宽度为导向,因为这个控件的AutoSize属性是True。

Frame := TFrame1.Create(Application);
  TFrame1(Frame).Label1.Caption := HintStr;
  Frame.Width := TFrame1(Frame).Label1.BoundsRect.Right + 4;

提示窗口的宽度将根据现在显示文本的大小而有所不同。
 
    五、Png模板的配置
    使用 Png 图像作为模板可以创建几乎任何形状的提示窗口。设置模板使用特殊的模板属性编辑器,它可以在设计时调用。
    前面的示例使用了一个模板,该模板是默认的并且位于应用程序资源中。让我们尝试定义一个模板并在这个例子中应用它。
    1、创建一个 Png 格式的图像,该图像将用作模板。
    2、在编辑器中创建一个新模板(“新建”按钮)并将其命名为“蓝色提示”。
    3、添加创建的图像
    4、定义边框的大小和阴影
    5、指定提示窗口边缘到其内容的距离
    6、如果我们不使用带标签的框架,我们可以为模板定义一个字体。但在我们的示例中,字体是直接在 Label 中设置的,我只是添加了 fsBold 属性。现在,我们可以按 OK,“蓝色提示”模板将被添加到组件中。要在应用程序中应用新样式,请在TemplateName属性中选择它。
    7、运行应用程序后,我们可以查看结果。
    第一次还不错:) 但是如果提示窗口会显示在控件上怎么办?如果控件太靠近屏幕底部,则会发生这种情况。箭头会画在上面,肯定不好。
    对于这种情况,模板编辑器中还有三个附加选项卡。如果设置了“使用附加图像”复选框,它们将被启用。“右上”、“左下”、“右下”选项卡允许指定应在适当角落绘制箭头的图像。
    可以绘制和配置与主图像相同的附加图像。
    将具有自定义样式的 TsAlphaHints 组件从一个项目转移到另一个项目可以通过复制/粘贴在设计时生成。

AlphaControls TsAlphaHints 控件相关推荐

  1. 教程:简单几步教你在Win版Delphi7中安装AlphaControls皮肤控件包.

    注:这是个简易教程. AlphaControls是一款不错的皮肤控件合集包. 它内置的诸多空间不仅能够让你的程序变得更加漂亮,同时你还可以为这些控件附加行为. ***第一步,下载AlphaContro ...

  2. Delphi 皮肤控件AlphaControls的使用

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Alph ...

  3. AlphaControls 控件 编辑皮肤 变更Glyphs控制符号

    AlphaControls 控件 编辑皮肤 变更Glyphs控制符号 AlphaControls提供编辑程序:ASkinEditor.exe,可以对AlphaControls皮肤文件(*.azs)进行 ...

  4. AlphaControls 控件 动画

    AlphaControls 控件 动画         AlphaControls 一组支持皮肤 (AlphaSkins) 的常见组件和一些独特组件,以及一些附加功能.所有皮肤元素都可以有自己的属性, ...

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

    AlphaControls 控件 TsFrameBar 创建下拉式多级导航菜单 TsFrameBar控件是创建一个下拉菜单的工具块.     TsFrameBar控件本身,可以通过创建TITEMS,自 ...

  6. alpha组件 color_标准皮肤控件组件AlphaControls发布 v15版本,添加了多种新属性 | 附下载...

    AlphaControls是一个标准的皮肤控件集合,它具有很多新的属性,可以添加到普通的控件中以增强程序界面效果,同时还能添加一些行为到普通的控件中,并使用了一些新技术.AlphaControls是一 ...

  7. AlphaControls 控件 TsMagnifier 放大镜

    AlphaControls 控件 TsMagnifier 放大镜 AlphaControls 控件 TsMagnifier组件,是一个窗口放大镜,放大镜的位置默认在窗口的中心,通过鼠标可以移动放大镜的 ...

  8. AlphaControls 控件 窗口初始化出现块状色斑的改进

    AlphaControls 控件 窗口初始化出现块状色斑的改进 使用AlphaControls控件,在窗口的显示过程中,有时出现下列情况: 同时,TsComboxcom 控件,显示Form显示时,学出 ...

  9. AlphaControls 控件 菜单的附加功能

    AlphaControls 控件 菜单的附加功能 AlphaControls 控件 使用标准的TMainMenu TPopupMenu控件,队原有功能外,其菜单ITEM项,具有的附加功能: 一.菜单项 ...

最新文章

  1. Makefile常用函数总结
  2. NLP-基础知识-006(机器学习)
  3. java获取当前tomcat线程pid_java 查看tomcat线程信息(示例代码)
  4. 检查字符串是否包含数字
  5. RC隔离级别下的GAP间隙锁
  6. C# 字符串逗号分隔存到List 数组(互相转换)
  7. VUE项目中 获得多个复选框 checkbox 选中的值(jquery)+ 解决 Uncaught TypeError: Cannot read property ‘push‘ of undefine
  8. VMware配置额外内存设置
  9. 1000 驱动_布加迪首款SUV渲染图曝光!采用纯电驱动,马力或将突破1000匹!
  10. win7如何删除mariadb
  11. 熊猫烧香病毒作者再被捕 开网络赌场敛财
  12. QT中使用ActiveX
  13. ubuntu内核版本回退,显卡驱动降级,重装显卡驱动和cuda,cudnn
  14. uni-app H5实现扫码登录功能
  15. 解决ionic 中 $ionicHistory.goBack()无法返回问题
  16. C# 调用迅雷 7 迅雷下载开放引擎
  17. 文件夹的隐藏选项为灰色勾选,无法更改或删除
  18. mysql的prepared_statement
  19. 基于机器学习的花卉识别
  20. PageHelper这种情况下有坑

热门文章

  1. SAP FI 系列 (033) - 应收票据的接收和承兑
  2. QQ发表说说显示服务器失败,为什么手机qq空间会说说通用失败?
  3. Java核心编程总结(十、反射),linux技术支持
  4. 网摘-UML之手机订餐系统
  5. [亲测,Success]Linux,VMware 安装+常用 命 令+网 络+进 程 管 理以及软件安装
  6. tfs java_ALM TFS/VSTS工具 的Java集成
  7. 企业管理软件对于零售行业的好处在哪?
  8. 使用FastReport.net 报表在网页上实现打印功能
  9. 【分析】Ceph:一个可扩展,高性能分布式文件系统
  10. Stream流(工厂的流水线)