【发布时间】:2017-02-14 15:30:30
【问题描述】:
我在 Windows 7 上运行 Delphi XE7 VCL 应用程序。
我观察到当按下 Ctrl+A(全选)时会触发TEdit.OnChange 事件。这是为什么呢?
只有当TEdit 中的文本真正改变时,我才需要可靠地触发OnChange 事件。不幸的是,没有可用的OnBeforeChange 事件,因此我可以比较更改前后的文本。
那么,如何为TEdit 实现可靠的OnChange 事件?
【问题讨论】:
-
这是 VCL 还是 FMX?
-
OnChange 触发为什么重要?也许有更优雅的解决方案?
-
@J... - 也许,但 OnChange 在没有实际更改时触发的事实很有趣:) 原因:在 OnChange 中,即使我创建并为输入的文件分配一个唯一 ID由用户在编辑框中。如果事件多次触发,则会生成多个 ID,我不希望这样。但正如你所说,我可以改变设计来绕过那个讨厌的 OnChange。
-
@NAZCA 通过使用 OnChange,您将在每次用户键入新字符时生成一个新 ID。为什么不要求用户在完全输入后单击按钮或菜单项或其他内容?
-
@RemyLebeau - 是的,我会改变设计。
标签: delphi vcl delphi-xe7