我的问题标题可能有点误导;如果是的话,我道歉。我不确定如何更好地标题。
我正在尝试将地址验证的地理编码添加到Delphi 7表单(使用CLX构建),并且我遇到了一些问题。详情如下:
退出yes / no对话框后,鼠标的行为似乎有点棘手。只需单击一下,看起来好像前一个表单(据此由此点关闭)而不是接收焦点 - 该表单上的单击事件能够更改此表单上的某些值(预加载数据),以及如果单击鼠标,这些值将会改变。禁用点击事件只是意味着只有一次鼠标点击在新表单上没有任何作用,然后点击行为将返回到预期的状态。
在研究这个问题时,我在网上看过几件事;这些问题的共识是我的问题是邮政编码字段的OnExit事件中的消息对话框的结合。 (如果我理解我正确读取的内容,MouseUp事件似乎在两个窗口之间丢失。)
如果我有自己的方式,我将包括一个手动按钮按下来运行验证。鉴于最终用户约束将我绑定到我没有该选项的情况,处理这种情况的最佳方法是什么?
答案 0 :(得分:0)
理想情况下,您可以让zip字段的OnExit
事件使用TThread.Queue()
来延迟消息对话,直到OnExit
先退出为止。唉,直到Delphi 8才引入TThread.Queue()
。所以OnExit
必须使用等效的方法,例如发布自己的自定义异步消息或启动一个短暂的一次性定时器,以触发延迟的动作