我注意到,当我设置Edit或DBEdit控件的MaxLength属性时,这不会阻止我在控件上放置比代码中的MaxLength大的文本。
例如,当我将MaxLength设置为12时,
但我可以这样做:
Edit1.Text := '012345678901234567890123456789'
这是正常行为吗?德尔福东京也是如此吗?
更重要的是,有一种简单的方法可以防止这种情况发生吗?
答案 0 :(得分:2)
与10.2相同。东京。属性TEdit.Text
是从TControl
继承而来的(通过TCustomEdit
和TWinControl
)。并且TControl.SetText
对MaxLength
一无所知,因此它不限制文本长度。它间接发出CM_TEXTCHANGED
消息,但是截获此消息的TCustomEdit
也不使用该消息来限制文本长度。
防止这种情况的唯一方法可能是不要分配超过12个“字符”的任何内容,或者将TCustomEdit
子类化为您自己的TMyEdit
,然后在您自己的SetText
中进行检查过程,请安装该组件并使用它。