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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值