读书人

怎去改DBGrid的某一列的值,该如何

发布时间: 2012-04-06 12:22:24 作者: rapoo

怎去改DBGrid的某一列的值
教大家一
怎去改DBGrid的某一列的值,但本身不改,只在DBGrid中改字段就行?

[解决办法]
数据改变之后当记录指针移动的时候,改变会自动更新到数据库里.单单只为满足这点需求的话,可以考虑改用其他的Grid控件比如StringGrid.
[解决办法]
选择DBGRID,找到事件 “DrawColumnCell”

C/C++ code
void __fastcall TfrmSets::dbGridDrawColumnCell(TObject *Sender,      const TRect &Rect, int DataCol, TbsColumn *Column,      TGridDrawState State){    if(Column->FieldName=="定差额") //当列的名称(字段名)为:"定差额" 的时候     {        //下面代码的作用,是改变所有数值的正负号,你可以你的需求,修改这一列的值,不会修改到数据库里面的数据        int iLeft,iTop;        AnsiString strText;        strText=strText.FormatFloat("0.00",-Column->Field->AsFloat);        iLeft=Rect.Left+(Rect.Width() -((TbsSkinDBGrid *)Sender)->Canvas->TextWidth(strText))/2;        iTop=Rect.Top+(Rect.Height() -((TbsSkinDBGrid *)Sender)->Canvas->TextHeight(strText))/2;        ((TbsSkinDBGrid *)Sender)->Canvas->TextRect(Rect,iLeft,iTop,strText);    }} 

读书人网 >C++ Builder

热点推荐