光标如何定死 ????????? (100分)

  • 主题发起人 HAPPYBAB
  • 开始时间
H

HAPPYBAB

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在添加一条记录到一个表时,往dbedit输入内容时,每输入一个字符,对表中数据
动态查询显示在对应的dbgrid里,而且光标在dbedit中位置不变?
我在dbedit的onchange事件里,写入如下代码:
procedure TFRMMBGL.DBEMBIDChange(Sender: TObject);
var s:string;
begin
s:=dbedit.Text;
if s='' then exit;
datasource.DataSet.Filtered:=false;
datasource.DataSet.Filter:='模板编号 like '+''''+s+'*'+'''';
datasource.DataSet.Filtered:=true;
每次执行时,输入一个字符后,模糊查询完,再输入第二个字符时,光标却停留在第一位,这是为什么呀??
恳请高手指点
 

试试看.

dbedit1.SelStart := Length(dbedit1.Text);
 
想每输入一个字符就有相应的动作的话, 要在 OnChange 事件里写代码.
 
影子:不行啊,加上那一句,dbedit1里显示的是表里当前记录的字段值,我要的是还
处于输入状态的呀?
 
同意影 子的看法.
加上dbedit1.setfocus;
 
哎哟~ 我没看清你的题目了, 不好意思.
 
to柳斜斜:
我是在onchange里写的呀,问题是我继续我的第二次输入时,光标停在了第一位
 
我用的是输入然后用query去执行查询,我的一个公积金的软件就是这么做的,查询得字段
少一点,速度很快的
 
影子说的应该可行的, dbedit1.SelStart := Length(dbedit1.Text);只设置光标的位置,
并不会改变 dbedit1.text 的值.
 
用edit代替dbedit.
 
to 喜马拉雅:
我这样做的目的是,表中有很大记录,当我输入一条新的记录时,是要编号的,通过边输入边模糊
匹配,使得用户只看到匹配后的结果,他就可以很轻松的知道该输入第几个编号了
按照我上面的程序,输入第一个字符后,应该光标停在第二个位置,可是他又停在首位了
不解不解!!!!!!!!!!!11
 
多人接受答案了。
 
顶部