【发布时间】:2022-03-19 00:47:52
【问题描述】:
我想创建一个 Delphi 应用程序,当用户将鼠标移到屏幕的左上角时,它会做一些有趣的事情。我想了想,打算用下面的策略来做:
-
创建一个非常小的 3x3 表单并使其透明并始终位于顶部。也让它没有标题栏或边框。
-
为窗体定义鼠标输入事件。
我在第 1 步中使用以下代码:
procedure TopLeftForm.FormCreate(Sender: TObject); begin FormStyle := fsStayOnTop; self.TransparentColor := true; self.TransparentColorValue := self.Color; self.BorderStyle := bsNone; end;问题是我发现当Form是透明的时候,是捕捉不到鼠标进入事件的。为了获得鼠标输入事件,我可以使表单不透明,但这样用户就可以在屏幕左上角看到表单,这不是我想要的。
你对我的问题有什么建议?
【问题讨论】:
-
恢复
transparent...设置并设置AlphaBlend := True和AlphaBlendValue := 1。这将使表单几乎不可见,但它仍会捕获鼠标事件。 -
在某些情况下,您的表格仍然可以被其他表格覆盖。我建议您考虑使用 Windows Hooks 来确定鼠标何时位于您想要的位置。
标签: forms delphi events mouse transparent