如何得到dbgridEh刚输入的值? ( 积分: 10 )

  • 主题发起人 主题发起人 delphibbsme
  • 开始时间 开始时间
D

delphibbsme

Unregistered / Unconfirmed
GUEST, unregistred user!
我想实现在输入一个值后,点击EditButton,可以对刚输入的值进行查询.不是colexit后的值,是刚输入的,还带高亮显示的.
我尝试用displaytext,但要在切换焦点之后才能获得刚输入的值.我还不知道在OnEditButtonClick如何写代码实现切换焦点.
 
切换焦点可以这样写
keybd_event(VK_TAB,0,0,0);
keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0);
不过最好在点BUTTON的时候POST一下这样稳定
 
对数据字段进行修改时,可以使用Field.CurValue获取用户修改,但尚未提交到数据库中的值
 
这个是不行的,还没有楼主用的那个DISPLAYTEXT好,那个在焦点移开后还可以,你这个一定要保存后才可以
 
好象我以前也遇到过这样的问题后来解决了,我去看看原来写的东西
 
好象不可以,是POST后再作的处理
 
Field.CurValue可以理解为中间值,通过它可以获取对字段修改后还没有提交到数据表中的值。保存后,Field.CurValue和Field.NewValue的值一样了,并可以通过Field.OldValue获取修改之前的值。
 
dbgrideh的keypress事件就好用
 
google网赚联盟,注册即赠100美金!立即注册:http://www.139google.com/jeliyBSpx.html
 
我用了curvalue,结果是一个异常:Type Null,大概是没有值吧。
我找到解决方案了,用InplaceEditor.EditText,可以得到刚输入的值。
切换焦点的代码不起作用。我希望不要先post
 
KEYPRESS事件,如果是汉字就麻烦了
 
试试在切换焦点前把值另存一份
 
用key的事件如何处理汉字呢?
 
ChrisMao,能不能发个oldvalue,curvalue,newvalue的例子?我还不会用这个。
 
如果不是汉子应该怎么写?你写一段代码吗?
 
var
QueryName, QueryValue, QuerySQL: String;
begin
if DataSet.State in dsEditModes then begin
//假设是对Grid中的第三个栏位进行操作
QueryName := DBGrid1.Columns.Items[2].Field.FieldName;
QueryValue := VarToStr(DBGrid1.Columns.Items[2].Field.CurValue);
QuerySQL := Format('Select * From Table Where [%s] = ''%s''', [QueryName, QueryValue]);
//执行查询
.....
end;
end;
 
我只能得到Null,不管是CurValue还是OldValue
我发现是因为我使用了EhLib的TMemTableEh,这种情况怎么才能取得OldValue?
 
后退
顶部