高分求助:一个Form上面用adoquery1、datasource1和dbgrid建立连接。
在Form上放一个TToolBar,并在TToolBar上建立一个TToolButton,名字为:cb_OKcb_OK的事件:
showMessage(adoquery1.fieldByName('Test').asstring);字段'Test'时的初始值='aaa'在修改状态时,修改字段'Test'的值='bbb',注意,这时没有转到下一字段,用屎标点下cb_OK,得到的值还是'aaa',也就是说,值没有变。
如果修改字段'Test'的值后,光标移到一下个字段,点下cb_OK,就可以得到值是'bbb'我想知道,如何在修改值时,就用屎标点cb_OK,就得到修改后的值'bbb',没理由让用户再打一个回车或移到下一行,点cb_OK,才得到修改后的值'bbb'
在Form上放一个TToolBar,并在TToolBar上建立一个TToolButton,名字为:cb_OKcb_OK的事件:
showMessage(adoquery1.fieldByName('Test').asstring);字段'Test'时的初始值='aaa'在修改状态时,修改字段'Test'的值='bbb',注意,这时没有转到下一字段,用屎标点下cb_OK,得到的值还是'aaa',也就是说,值没有变。
如果修改字段'Test'的值后,光标移到一下个字段,点下cb_OK,就可以得到值是'bbb'我想知道,如何在修改值时,就用屎标点cb_OK,就得到修改后的值'bbb',没理由让用户再打一个回车或移到下一行,点cb_OK,才得到修改后的值'bbb'
解决方案 »
- 问一个指针简单的释放问题,
- 把数据库由sql server改成access后出现“标准表达式中数据类型不匹配”?
- 谁能解释一下有关CPU ID的信息?!
- 如何在程序中使用自己的光标 我已有了光标文件
- 组合框
- ADOQuery中如何对对select出来的记录直接操作?
- 十六进制怎么转换为十进制?
- 一系列的小问题!大家来帮帮忙!!!在线等待!!!
- 难题,关于delphi+excel报表+宏+3层结构
- 找了半天,没有发现TTabSheet控件的位置
- 我用TAPI写了一个自动拨号的程序,为什么拨号的时候会弹出一个"通话状况"的窗口.
- 我想请问一下mozilla是如何解析http数据包的?如何将url请求的参数部分加密并发送出去的?如http://www.sina.com?name=(加密内容)&passwo
还是insert???
if adoquery1.State in [dsInsert, dsEdit] then
adoquery1.post;
showMessage(adoquery1.fieldByName('Test').asstring);
showMessage(adoquery1.fieldByName('Test').text);
~~~~强人呀,不得不服!
其实我想,应该是输入时,如果不换行,数值是不会变的,因为有个缓存的在作用,大家可以看下POST的代码,就发现POST时会有一个清除缓存的作用。不过,如果这个问题真的解决不了,那各位,我劝你们还是尽量不要用TToolButton,廦免出现一些数据的错误,查错起来,就麻烦了。
定义一个TTestGrid:
type
TTestGrid = class(TCustomGrid)
end;
ToolButton用下面的代码:
if Assigned(TTestGrid(DBGrid1).InplaceEditor) and TTestGrid(DBGrid1).InplaceEditor.Visible then
ADODataSet1.FieldByName(DBGrid1.SelectedField.FieldName).AsString := TTestGrid(DBGrid1).InplaceEditor.Text;
ShowMessage(ADODataSet1.FieldByName(DBGrid1.SelectedField.FieldName).AsString);
procedure TForm1.ToolButton1Click(Sender: TObject);
begin
adoquery1.Post ;
showMessage(adoquery1.fieldByName('v_name').asstring);
end;