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

CACACACACA 2010-04-02 11:23:48
有两种导致Edit.onchange事件触发

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

如何区分是哪一种?


答案:
判断 Edit1.Modified









...全文
267 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
slmax1 2010-04-07
  • 打赏
  • 举报
回复
我就是只来拿10分的
sanguomi 2010-04-02
  • 打赏
  • 举报
回复
看了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;


用早天你那个拦截类方法SetText应该可以,手工输入应该是不会调用SetText的
直接走消息了
procedure TWinControl.DefaultHandler(var Message);
if Msg = WM_SETTEXT then
SendDockNotification(Msg, WParam, LParam);

haitao 2010-04-02
  • 打赏
  • 举报
回复
像checkbox/combobox/pagecontrol的改变呢?
kv2002 2010-04-02
  • 打赏
  • 举报
回复
今儿都4.2号了,还待分数提到2分
CACACACACA 2010-04-02
  • 打赏
  • 举报
回复
晕啊! 设置字体颜色无效!
c_hua6280 2010-04-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jjwwang 的回复:]
晕啊! 设置字体颜色无效!
[/Quote]

好好的呀

您再试试。

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧