知道就算了,不知道的看一看.活跃气氛.
有两种导致Edit.onchange事件触发
一是有按键输入时
二是给Text属性赋值时.
如何区分是哪一种?
答案:
[color=#FFFFFF]判断 Edit1.Modified [/color]
[解决办法]
看了VCL的源代码,VCL的是用TControl里的SetText方式来修改的,然后SetText发送消息方式,然后触发消息,然后发送消息给Edit修改
procedure TControl.SetTextBuf(Buffer: PChar);begin Perform(WM_SETTEXT, 0, Longint(Buffer)); Perform(CM_TEXTCHANGED, 0, 0);end; WM_SETTEXT: begin P := StrNew(PChar(LParam)); StrDispose(FText); FText := P; SendDockNotification(Msg, WParam, LParam); end;