作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个包含多个 TFrame
副本的 VCL 表单,每个副本都包含多个 TLabel
组件。
标签占据了框架内的大部分区域,为专门选择框架提供了很少的暴露客户区域。当用户选择框架组件并在各种标签标题中显示特定文本时,程序必须采取行动。问题是,如果用户单击标签组件之一而不是框架中的开放区域,则不会触发 OnClick
事件。
如果用户单击框架内的任意位置,如何生成框架的 OnClick
事件?
最佳答案
VCL 在决定图形(非窗口)控件是否是有效目标之前测试它对鼠标事件的响应。您可以使用专门的标签来修改此响应。最简单的方法是在帧单元中使用插入器类(如果所有标签的行为都相同)。
type
TLabel = class(Vcl.StdCtrls.TLabel)
protected
procedure CMHitTest(var Message: TCMHitTest); message CM_HITTEST;
end;
TMyFrame = class(TFrame)
...
end;
...
procedure TLabel.CMHitTest(var Message: TCMHitTest);
begin
Message.Result := HTNOWHERE;
end;
关于delphi - 如何为 onclick 事件选择 Delphi 框架而不是其组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58240100/
我是一名优秀的程序员,十分优秀!