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

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属性可以指定弹出方向的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值