delphi – 如何显示禁用控件的提示?

前端之家收集整理的这篇文章主要介绍了delphi – 如何显示禁用控件的提示?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个复选框,将在运行时启用/禁用.我只想显示启用/禁用的不同工具提示.我正在考虑重写OnMouseEnter事件并在那里处理它,但只有在启用控件时才会调用OnMouseEnter.我怎么可能实现这种行为?任何帮助,将不胜感激.

我试图处理表单的OnMouseMove并执行类似的操作

procedure Tdlg.pnlTopMouseMove(Sender: TObject;Shift: TShiftState; X,Y: Integer);
var
  point: TPoint;
  checkBoxCursorPos: TPoint;
begin
  inherited;
  point.X := X;
  point.Y := Y;
  checkBoxCursorPos := chkBx.ScreenToClient(point);
  if (PtInRect(chkBx.ClientRect,checkBoxCursorPos)) then
  begin
    if(chkBx.Enabled) then
      chkBx.Hint := 'Enabled'
    else
      chkBx.Hint := 'Disabled' ;

    Application.ShowHint := True;
  end;

end;

但条件PtinRect不满意.我做错了什么?

解决方法

有一个简单的解决方案:在复选框上放置一个空TLabel,并将其提示设置为禁用复选框状态的值.标签必须关闭AutoSize,您可以通过将BoundsRect属性设置为CheckBox属性来强制执行位置和大小.

启用CheckBox时,将使用复选框的提示,而禁用CheckBox时将使用标签提示.

更新:刚看到Bummi在评论中提到了类似的想法.

猜你在找的Delphi相关文章