TBalloonHint气泡提示的用法(How to use TBalloonHint)

BalloonHint 这是一个在Delphi2010中提供的气泡形提示用的组件,在Delphi2007中是没有的。本人从Delphi2010中将它抠出来,略作修改,让它适应Delphi2007。希望大家喜欢! 这里提供一个例子说明它的用法:仅需编写需要显示提示信息的组件的OnMouseEnter、OnMouseLeave事件即可。 立即下载

XE中提供了一个非常简单实用的气泡提示组件TBalloonHint,但怎么个用法似乎没有详细的说明,下面给大家一段演示代码

//代码段1, 加载系统默认图标

    FImageList := TImageList.Create(AOwner);
    FImageList.Height := 24;
    FImageList.Width := 24;
    FImageList.ColorDepth := cd32Bit;
    Icon := TIcon.Create;
    Icon.Handle := LoadIcon(0,IDI_WARNING);       FImageList.AddIcon(Icon);
    Icon.Handle := LoadIcon(0,IDI_ERROR);         FImageList.AddIcon(Icon);
    Icon.Handle := LoadIcon(0,IDI_INFORMATION);   FImageList.AddIcon(Icon);
    Icon.Handle := LoadIcon(0,IDI_QUESTION);      FImageList.AddIcon(Icon);
    Icon.Free;

    FBalloonHint := TBalloonHint.Create(AOwner);
    FBalloonHint.Images := FImageList;
    FBalloonHint.Delay := 0;

//代码段2,显示提示

var

  P1,P2: TPoint;
  Rect: TRect;
  Edit: TControl;

begin

  FBalloonHint.Title := 'Test';
  FBalloonHint.Description := 'This is a test';
  FBalloonHint.ImageIndex := 0;

  Edit := self.GetEditControl; //可以指定任何组件
  P1.X := Edit.Left;
  P1.Y := Edit.Top;
  P2.X := Edit.Left+Edit.Width;
  P2.Y := Edit.Top+Edit.Height;
  P1 := self.ClientToScreen(P1);
  P2 := self.ClientToScreen(P2);
  Rect.TopLeft := P1;
  Rect.BottomRight := P2;
  FBalloonHint.ShowHint(Rect);

end


第一段代码把windows系统自带的图标放入ImageList中,不是必须的,你可以用自己的图标;第二段代码显示气泡提示。需要说明的时ShowHint有4个重载的方法:

1. 不带参数:         这个完全没有用,默认显示在屏幕的最左上角
2. TPoint参数:     定点弹出,问题在于弹出的方向,如果点坐标在屏幕上半部,会向下弹出,否则向上弹出,有时会遮蔽对应的组件
3. TRect参数:      这个是最实用的了,气泡会在根据矩形在屏幕的上下位置,在矩形的上边缘中央向上弹出或者矩形的下边缘中央向下弹出,保证不会遮蔽矩形区域
4. TControl参数: 这个和TPoint有点类似,默认是在Control的下边缘中央,问题是不能控制弹出方向,可能会遮蔽Control

如图所示,矩形代表TRect参数区域,红色箭头代表弹出点和方向:

当然还有一种做法是自定义弹出的窗口,TBallonHint有一个PaintHint的方法,可以指定窗口,必须从TCustomHintWindow继承,有意思的是TCustomHintWindow有个PopAbove属性可以指定弹出方向的。


BalloonHint.rar 立即下载

相关推荐

delphi编写气泡信息提示

delphi实现用气泡提示替代传统的提示方式,支持图标和文字动态改变,支持圆形和方形提示样式。

DelphiXE4 TBalloonHint组件的使用

本例相关图片:       [delphi] view plaincopy unit Unit1;   interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Im

wozengcong的专栏 2455

从零到一:YT8512C PHY芯片在STM32F407上的LWIP移植实战与避坑指南

本文详细介绍了YT8512C PHY芯片在STM32F407平台上基于LWIP协议栈的移植实战,涵盖硬件连接、CubeMX配置、寄存器定制和调试技巧。重点解析了与主流PHY芯片的差异,提供了完整的避坑指南和优化建议,帮助开发者快速实现稳定可靠的嵌入式网络连接。

uber9的博客 538

气泡消息提示

使用 TBalloonHint 控件,可以实现灵活控制对VCL 控件上进行消息提示 var   Pos: TPoint;   BalloonHint :TBalloonHint; begin   BalloonHint := TBalloonHint.create(application);   BalloonHint.ImageIndex :=0; //要先设置 BalloonHin

caonumber的专栏 1793

Vmware虚拟机克隆详解:固定ip + 修改uuid等内容

分两大步 设置固定ip 克隆后修改相关配置 本文引用的其他地方的图片。会附上链接 若侵权,删 一、设置静态ip 先进行虚拟网络的编辑 接下来的操作需要管理员权限。(给权限就完事了) 接下来设置网卡: 网络和共享中心→ 更改适配器设置→VMware Network Adapter VMnet8 -> 右键属性 修改TCP/Ipv4的配置,网上常见是这种,笔者是英文的...

Unknownfuture的博客 9070

Docker容器化部署Ceph集群:从零搭建高可用分布式存储

本文详细介绍了如何使用Docker容器化部署Ceph集群,从零搭建高可用分布式存储系统。通过环境一致性、快速扩容和资源隔离等优势,Docker显著提升了Ceph集群的部署效率和运维便捷性。文章涵盖硬件规划、镜像选择、单节点部署、多节点扩展及性能调优等实战内容,帮助开发者快速掌握分布式存储系统的容器化部署技巧。

weixin_29081101的博客 422

Delphi 显示提示消息

Delphi在桌面程序开发中实现提示消息

一步一个脚印的往前走! 4337

基于信号完整性的PCB设计原则

基于信号完整性的PCB设计建议,以单网络的信号布线作为评估对象,给出了一些最基础的设计指导,如何灵活运用,取决于设计者根据实际场景如何做取舍和判断。

一只豌豆象的博客 1758

新提示风格Hint BalloonHint 气泡

Hint BalloonHint1新风格的提示,好看漂亮,对其他控件都起作用,TCSpinButton却不起作用XE7里也不行??Hint for (int i = 0; i < this->ComponentCount; i++) { if (this->Components[i]->ClassNameIs("TCSpinButton")) ((...

weixin_34178244的博客 458

华为OD机试 新系统 双机位C卷 往年真题 机考题库(持续收录中)以及算法考点详解(Python/JS/C/C++)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释发现新题目,随时更新。

学Java,找哪吒 5万+

ExpressLRS(ELRS)接收机技术全景:从历史演进、技术底层到产业生态全解析——上

ExpressLRS(ELRS)是一种由全球开源社区驱动的双向射频遥控链路协议栈,其接收机作为核心终端,承担信号接收解调、遥控指令解析、飞控数据交互与遥测回传等关键功能。自2018年问世以来,ELRS凭借极致性能、低成本、开放生态和强兼容性,从航模DIY方案发展为消费级无人机领域的事实标准,并逐步渗透工业级场景。 ELRS接收机采用模块化分层架构,支持2.4GHz和900MHz双频段,通过LoRa、FLRC、FSK多调制模式实现低延迟与远距离平衡。其核心技术包括自适应跳频抗干扰、TDD双向链路和极简数据包。

bother3000的博客 304

PythonStudio 控件使用常用方式(二十四)TBallonHint

PythonStudio是一个极强的开发Python的IDE工具,官网地址是:https://glsite.com/ ,在官网可以下载最新版的PythonStudio,同时,在使用PythonStudio时,它也能及时为用户升到最新版本。它使用的是Delphi的控件,常用的内容是与Delphi一致的。但是相关文档并一定完整。现在我试试能否逐步把它的控件常用用法写一点点,也作为PythonStudio的参考。从1.2.1版开始,PythonStudio又增加了很多新的控件。

gxchai的博客 798

92. SAP ABAP 系统里长文本 Long Text 的设计和读取函数 READ_TEXT 的详细讲解

SAP ABAP中的长文本(Long Text)是指在SAP系统中存储和管理较长文本信息的一种机制。长文本通常用于存储描述性信息、注释、说明等,这些文本信息可能超过了标准数据库表字段的长度限制。 长文本的作用主要有以下几点: 1. 更多的信息存储:长文本允许您存储和显示比标准表字段允许的更多信息。例如,产品描述、用户注释、维护计划等可能需要大量的文本来详细描述。 2. 更好的可读性:长文本提供了更好的文本格式化选项,可以改善可读性。用户可以使用段落、列表、字体样式等格式化文本,以便更容易地理解和阅读。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1997

Python气泡提示与标签

今天我们讲气泡提示,就是这个样子的。 那个‘这是一个气泡提示’就是气泡提示,朋友们肯定有些会‘哦,原来就是这个呀。’,也有些朋友会说:“这不是电脑自带的吗”。这个问题在我刚学编程的时候,也是这样。比如我一开始先是学Scratch,然后目标是编一个植物大战僵尸。当我去编的时候(没学过,因为很简单,一看就懂。),以为太阳从天上掉下来的效果是编的时候不用编,而是以为自带的。结果还要涉...

heima201907的博客 638

手把手教你ensp仿真搭建校园网(含防火墙及无线网络)系列(二)校园网接入层交换机配置

本系列博客将带你从零开始,使用 华为 eNSP(Enterprise Network Simulation Platform) 仿真搭建一个完整的校园网络,涵盖 核心层、汇聚层、接入层、防火墙安全策略、无线AC+AP组网 等实战场景。无论你是网络初学者还是希望深化实战经验的工程师,都能通过本教程掌握企业级网络的规划、配置与排错技巧。

echo的博客 1219

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Delphi 2009 之 TBalloonHint

本例相关图片: unit Unit1; interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ImgList; type TForm1 = class(TForm) BalloonHint

被遗忘的遐想空间 1009

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Class-reference types 类引用类型--快要失传的技术

先摘一段原版的说明: A class-reference type, sometimes called a metaclass, is denoted by a construction of the form class of type where type is any class type. The identifier type itself denotes a value whos...

suoyihen 225

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

点击出气泡

在图层上点击某个位置,有个气泡弹出,里面有相关具体信息。好酷哟,怎么实现呢? 我粗浅地了解到,这是一种“要素图层”,FeatureLayer,有相关的相应方法。ArcGIS的图层可分为以下几种: 参考文章: ArcGIS图层介绍 其实呢,在ArcGIS里面,我目前的理解(可能是错的),所有的图层都是要素图层,而弹出气泡效果,关键是代码里如何操作。举个栗子, //加...

weixin_34197488的博客 323

Delphi历史版本介绍(二)从Delphi8到DelphiXE3

Delphi历史版本介绍(二)从Delphi8到DelphiXE3Delphi 8       Delphi8是一个短命的版本,有点像微软的vista的感觉,没有很好的超越7,后来用被2005取代,很多人都是直接从7到D2005的,Delphi8就这样被消损在历史的烟尘中。作为Delphi8周年的产物,好像还没有长熟就被请出了娘胎,继续袭承

敦格 1万+

Delphi中Frame的使用方法(1)

Frame是组件面板上的第一个组件,但不是每个人都知道怎么用它,因为它不像Button和Label一样简单明了。实际上,Frame按钮只是打开一个Frame的列表,如果你没有创建任何的Frame,自然什么也不会看到。 那么Frame到底是什么呢?简单来说: 1. Frame是组件容器,类似Panel 2. Frame在使用上类似Components组件,但并没有构造器和解析器,依赖于

技术只是工具,人生才是目标 3万+
上一篇: Parent属性的另类用法
下一篇: sql中不存在则插入记录小技巧
vniceboy
博客等级 码龄21年 0粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值