请问 dbgrid 中怎样实现修改鼠标选中的那一个字段值后 其他字段也跟着变化
如
包车费 实际付费 欠款
200 150 50把付费的150改为200后 欠款自动变为0 谢谢............
如
包车费 实际付费 欠款
200 150 50把付费的150改为200后 欠款自动变为0 谢谢............
解决方案 »
- 怎么添加启动项?
- 初学三层开发,如何使用ADOStoreProcedure存储过程
- 怎样在spcomm 中判断串口是否已经打开?
- 怎样动态的把odbc写到注册表中
- 谁在qq上给我传一个可用的delphi5.0或delphi5.5,有300分相送
- 100分求一sql语句或者更好的解决办法。
- COM初学者在编程中遇到了许多问题……,请COM类的高人们指点,谢谢啦!
- 学IntraWeb的,大家联系一下如何?
- 数据库存储过程图像问题
- 谁知道dbgrid加载纪录集是怎么做的呢
- 自制控件有一个属性是TLitView,删除TLitView时出错。
- delphi 中DBgrid怎么样让标题和内容都水平居中显示?
数据一致性好。TField::OnChange事件:字段内容发生改变时产生该事件,在里面写代码更改其他字段的值,字段值一改变,其他相关字段值马上会有变化,无须提交就可回显,用户接受程序高。不好的地方是该表所有涉及修改的界面都要注意这些地方,多个修改界面时,不小心的话,会产生数据不一致。计算字段:仅限于支持计算字段的语言,如delphi BCB. 而且对计算字段的排序,分组等也不好做。
在不支持计算字段的语言中,用写SQL计算来实现。
2.靜態定義TField的OnChange事件,然後動態調用;(加減法而已)
s:pchar;
Ret: LongInt;
function gethand:integer;//获得句柄
var
Hands: HWND;
poss:TPoint;
begin
GetCursorPos(Poss);
Hands := WindowFromPoint(Poss);
Result:=Hands;
end;
begin
Ret := SendMessage(gethand, WM_GETTEXTLENGTH, 0, 0) + 1;
getmem(s,Ret);
SendMessage(gethand, WM_GETTEXT,ret,Integer(s));
showmessage('得到的内容为'+S);
//更新其他值为S
end;