很好的冒泡提示功能

具体使用可以参考QQ发送空字符的时候会有“发送内容不能为空,请重新输入”的Hint。

实际函数:

procedure QiPaoShowMessage(h:HWND;text,cap:string;IconType:integer=1;t:integer=2000;left:Integer=0;top:Integer=0);
var
 r : TRect;                       //是一个记录(Record),保存了矩形的(左上角右下角两个点)4个坐标或2个点的值。
 hTooltip: Cardinal;    //Cardinal是无符号32位整数 ,取值0到4294967295范围。
 ti: TToolInfo;
begin
  hToolTip := CreateWindow('Tooltips_Class32', nil, $40, 0, 0, 0, 0, 0, 0, hInstance, nil);
  if hToolTip <> 0 then
  begin
    //让气泡在最前面
    SetWindowPos(hToolTip, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);
    ti.cbSize := SizeOf(TToolInfo);
    ti.uFlags := TTF_IDISHWND{ or TTF_TRACK};
    ti.hInst := hInstance;
    ti.lpszText :=pchar(text);
    SendMessage(hToolTip, TTM_ADDTOOL, 0, Integer(@ti));
    if (IconType > 3) or (IconType < 0) then IconType:=0;
    SendMessage(hToolTip,WM_USER + 32,IconType,Integer(pchar(cap)));
    GetWindowRect(H,R);             //获取指定控件的坐标,R.Right 、R.Left、R.Bottom、R.Top
    r.Left:=r.Left-left;
    r.Top:=r.Top-top;

    //if   BackColor <> 0   then
    SendMessage(hToolTip,   TTM_SETTIPBKCOLOR,   clSkyBlue,   0);
//        if   TextColor <> 0   then
//        SendMessage(hToolTip,   TTM_SETTIPTEXTCOLOR,   TextColor,   0);

 

    //定义气泡位置
    SendMessage(hToolTip,TTM_TRACKPOSITION, 0, MAKELONG((r.Right - r.Left) div 2 + r.Left, (r.Bottom - r.Top) div 2 + r.Top));
    SendMessage(hToolTip, TTM_TRACKACTIVATE, Integer(True), Integer(@ti));
    Sleep(t);
    DestroyWindow(hToolTip);

 

  end;
end;

 

调用说明:如果不能做什么事的情况就给客户一个合理的提示,这样客户就容易明白是怎么一回事了!

提高客户对程序的自主使用,以及对程序的认同。

procedure TfrmEmployeePassSet.ctrEmployeeChanging(Sender: TObject;
  Node: TTreeNode; var AllowChange: Boolean);
begin
  AllowChange := FormState = fsView;
  if not AllowChange then
  begin
    QiPaoShowMessage(Handle, csNotChangeEmployee, csHint);
  end;
end;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以通过以下步骤来制作跟随鼠标移动的冒泡提示框: 1. 在Vue组件中,为需要触发冒泡提示框的元素添加一个鼠标移入事件。 2. 在事件处理函数中,使用Vue的$refs属性获取到冒泡提示框的DOM元素,并设置其display属性为block,显示冒泡提示框。 3. 在事件处理函数中,使用event.clientX和event.clientY获取鼠标当前位置的坐标,并将这些坐标值作为样式属性设置到冒泡提示框的位置上,实现跟随鼠标移动。 4. 为需要触发关闭冒泡提示框的元素添加一个鼠标移出事件。 5. 在事件处理函数中,将冒泡提示框的display属性设置为none,隐藏冒泡提示框。 以下是一个示例代码: ```html <template> <div> <button @mouseover="showTooltip" @mouseout="hideTooltip">Hover me</button> <div class="tooltip" ref="tooltip">This is a tooltip</div> </div> </template> <script> export default { methods: { showTooltip(event) { this.$refs.tooltip.style.display = 'block'; this.$refs.tooltip.style.left = event.clientX + 'px'; this.$refs.tooltip.style.top = event.clientY + 'px'; }, hideTooltip() { this.$refs.tooltip.style.display = 'none'; } } }; </script> <style> .tooltip { position: fixed; display: none; padding: 5px; background-color: #fff; border: 1px solid #ccc; } </style> ``` 在上面的示例中,我们为一个按钮添加了鼠标移入和移出事件。在鼠标移入事件处理函数中,我们获取到了冒泡提示框的DOM元素,并设置其display属性为block,让其显示出来。然后,我们将鼠标当前位置的坐标作为样式属性设置到冒泡提示框的位置上,实现跟随鼠标移动。在鼠标移出事件处理函数中,我们将冒泡提示框的display属性设置为none,隐藏冒泡提示框。最后,我们还定义了一些CSS样式来美化冒泡提示框的外观。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值