读书人

知道就算了,不知道的看一看.活跃气氛.

发布时间: 2012-02-19 19:43:38 作者: rapoo

知道就算了,不知道的看一看.活跃气氛.
有两种导致Edit.onchange事件触发

一是有按键输入时
二是给Text属性赋值时.

如何区分是哪一种?


答案:
[color=#FFFFFF]判断 Edit1.Modified [/color]











[解决办法]
看了VCL的源代码,VCL的是用TControl里的SetText方式来修改的,然后SetText发送消息方式,然后触发消息,然后发送消息给Edit修改

Delphi(Pascal) code
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; 

读书人网 >.NET

热点推荐