【发布时间】:2011-07-27 04:50:50
【问题描述】:
我需要在 Delphi 2009 中以某种方式实现这一点:
用户点击按钮 2。如果用户的最后一个操作是点击按钮 1,那么我想做一件事,但如果用户的最后一个操作是别的,我想做另一件事。
显然,我设置了一个布尔变量:UserClickedOnButton1,并在单击按钮 1 时将其设置为 true,然后在按钮 2 的 OnButtonClick 事件中测试该变量。
我的问题是,当用户在点击按钮 2 之前执行任何其他操作(例如,鼠标按下、按键、箭头键、切换到另一个程序或其他任何操作)时,如何将其设置为 false。
...或者有没有我忽略的更简单的方法。
【问题讨论】:
-
“其他任何东西”非常模糊。例如,切换到另一个程序,最小化主窗口,这一切看起来像是你试图完成的一件非常模糊(未定义)的事情。请尽可能准确地编辑您的问题。想想后来出现的穷人,想知道你所说的“其他”是什么意思......
-
@Warren:基本上,除了点击按钮 2 之外所做的任何事情都应该取消点击按钮 1 发起的特殊操作。
-
因此,包含此控件的主窗口失去焦点,以及任何鼠标在窗口内任何其他控件上的任何位置...
-
如果所有被禁止的动作都有一个Taction,那么你可以使用一个TActionList。在 TActionList.onExecute 中,您可以编写代码以遵循所需的行为。但 NGLN 似乎已经采取了另一种很好的方式来效仿。只是想补充一下,这看起来像是一个 EasterEgg 实现...... o.o''
-
@EMBarbosa:不,不是复活节彩蛋,但这是一个有趣的想法。实际上,这是一种情况,其中一个按钮通过执行第二个按钮的第一部分来完成。所以我不想重复“第一部分”两次。
标签: delphi