请教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。
[解决办法]
学习,强烈需要