Delphi TBalloonHint
var pt: TPoint; BalloonHint1.Title := ''; BalloonHint1.Description := '名称不能包括: ' + GetIgnoreChars(); pt.X := edtName.Width div 2; pt.Y := 0; BalloonHint1.HideAfter := 5000; BalloonHint1.ShowHint(edtName.ClientToScreen(pt)); //坐标end; end;
BalloonHint1.Delay := 0; procedure TfrmReleateGQAccount.ShowHint(Hint: string; Control: TControl); begin if not Assigned(Control) then Exit; BalloonHint1.Description := Hint; BalloonHint1.ShowHint(Control); end;
万一 老师 http://www.cnblogs.com/del/archive/2008/08/14/1267834.html
procedure TForm1.FormCreate(Sender: TObject); begin Button1.CustomHint := BalloonHint1; Edit1.CustomHint := BalloonHint1; BalloonHint1.Images := ImageList1; Button1.ShowHint := True; Edit1.ShowHint := True; Button1.Hint := '提示:|这是 Button1 的 Hint|0'; {标题|内容|ImageList 中的图像序号} Edit1.Hint := '敬告:|这是 Edit1 的 Hint|1'; end;
http://blog.csdn.net/ppayun/article/details/6766801
需要说明的时ShowHint有4个重载的方法:
1. 不带参数: 这个完全没有用,默认显示在屏幕的最左上角
2. TPoint参数: 定点弹出,问题在于弹出的方向,如果点坐标在屏幕上半部,会向下弹出,否则向上弹出,有时会遮蔽对应的组件
3. TRect参数: 这个是最实用的了,气泡会在根据矩形在屏幕的上下位置,在矩形的上边缘中央向上弹出或者矩形的下边缘中央向下弹出,保证不会遮蔽矩形区域
4. TControl参数: 这个和TPoint有点类似,默认是在Control的下边缘中央,问题是不能控制弹出方向,可能会遮蔽Control
如图所示,矩形代表TRect参数区域,红色箭头代表弹出点和方向:

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

浙公网安备 33010602011771号