首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

请问DBGrid的用法,

2012-02-24 
请教DBGrid的用法,急!!隔行显示不同色void__fastcallTForm1::DBGrid1DrawColumnCell(TObject*Sender,const

请教DBGrid的用法,急!!
隔行显示不同色  
void   __fastcall   TForm1::DBGrid1DrawColumnCell(TObject   *Sender,  
const   TRect   &Rect,   int   DataCol,   TColumn   *Column,  
TGridDrawState   State)  
{  
    if   (State.Contains(gdSelected))  
        return;  
    if   (DBGrid1-> DataSource-> DataSet-> RecNo   %   2   ==0)  
        DBGrid1-> Canvas-> Brush-> Color   =   clRed;   //定义背景颜色  
    else  
        DBGrid1-> Canvas-> Brush-> Color   =   clBlue;   //定义背景颜色  
    DBGrid1-> DefaultDrawColumnCell(Rect,DataCol,Column,State);  
}  
为什么DBGrid1-> DataSource-> DataSet-> RecNo   的值总是等于-1?
 
另外DBGrid能不能设置在编辑时不自动保存,而是在我按一个保存的按钮后再保存?因为DBGrid上有些字段是隐藏的,在保存前需要先赋值,而在编辑时,先用Query1-> Edit(),在保存按钮下的代码中用了Query1-> Post()也不保存修改或添加的记录,请问这样做对应的Query与DataSource控件的属性如何设置,那个保存按钮的代码如何写呢?  



[解决办法]
DBGrid1-> DataSource-> DataSet-> Open();
???
[解决办法]
第二个问题
DBGrid1-> DataSource-> DataSet-> LockType=ltBaltchOptimistisc
保存时调用query的updatebatch()函数
[解决办法]
RecNo 对于 paradox 和dbf 才是有意义的,他的说明写了。
[解决办法]
Query1-> CachedUpdates=true这样的话你试试Query1-> ApplyUpdates();

另外 对于BDE控件,RecNo 的值总是等于-1。
[解决办法]
学习,强烈需要

热点排行