onchange如何区分在前台操作或是程序中赋值操作? delphi的edit只有一个onchange事件,没有专门区分interactivechange与programmaticchange,使用中如何区分是操作修改还是程序中赋值修改,试过modified属性,对dephi自己的tedit控件,好像没问题,但用第三方控ehlib的tdbnumerediteh,与tms的tadvedit区分不了,有什么办法区分两类事件? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主一定要区别的话,在TEdit.Onchange事件时,找到是否有键盘录入。通过键盘录入,我想能能够区别的。 一般情况,为了程序的一致性,不管是谁导致了值变化,都要做相应处理。但是如果楼主一定要区分,就只好增加一个标志字段,程序设置前,置一下位, onchange事件里检查这个标志, 设置完了取消标志位。 顶,设置一个变量,在onChange中判断下! if var flag:Integer; procedure TForm1.edt1KeyPress(Sender: TObject; var Key: Char);beginflag:=1;end;procedure TForm1.btn1Click(Sender: TObject);beginif (not edt1.Text='') and flag=1 thenbegin ShowMessage('人为赋值');end;end;应该是这个意思吧, flag变量为 标志 没有编译,意思是 edit中有内容,且在 在edit中按下键盘, (内容为字符型,不能是backspace之类的) 就是 用户人为的动作 关于table post的问题? 关于异常捕捉问题 为什么Delphi7没有报表组件QReport? 急用!谁能帮我解决阿,谢谢! 开始学习Rave做报表,请大侠介绍一点资料,最好要中文的,我的e文很差 哪位记得try---except中是如何捕捉错误原因的??? 点击treeview某一项时,如何得到该项的值? Enabled 的问题? 怎么发布COM? 一个Delphi和asp的问题:Delphi程序安装到win2000上后执行asp程序,不明白。。看里面。。 delphi7在64位win7安装后不能编译 datasnap服务端报ntdll.dll错误,midas.dll错误!!!
procedure TForm1.edt1KeyPress(Sender: TObject; var Key: Char);
begin
flag:=1;
end;procedure TForm1.btn1Click(Sender: TObject);
begin
if (not edt1.Text='') and flag=1 then
begin
ShowMessage('人为赋值');
end;
end;
应该是这个意思吧, flag变量为 标志