delphi – 如何显示禁用控件的提示?
发布时间:2020-12-15 04:35:25 所属栏目:大数据 来源:网络整理
导读:我有一个复选框,将在运行时启用/禁用.我只想显示启用/禁用的不同工具提示.我正在考虑重写OnMouseEnter事件并在那里处理它,但只有在启用控件时才会调用OnMouseEnter.我怎么可能实现这种行为?任何帮助,将不胜感激. 我试图处理表单的OnMouseMove并执行类似的操
我有一个复选框,将在运行时启用/禁用.我只想显示启用/禁用的不同工具提示.我正在考虑重写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在评论中提到了类似的想法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |