gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 14:59:26 25 4
gpt4 key购买 nike

我有一个复选框,将在运行时启用/禁用。我只想在启用/禁用它时显示不同的工具提示。我正在考虑重写 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 的属性来强制执行位置和大小。

当复选框启用时,使用复选框的提示,而当复选框禁用时,使用标签的提示。

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

关于delphi - 如何显示禁用控件的提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16538591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com