1.显示cxgrid的导航条:
注意导航条中一共有16个操作键,如下图:
这16个操作间对应着:
需要注意的是,点击导航条中的按钮发生的事件为:
void __fastcall TFormSysConfig::cxGrid1DBTableView1NavigatorButtonsButtonClick(TObject *Sender,
int AButtonIndex, bool &ADone)
其中这16个操作键对应的AButtonIndex的为一下16个,当然为了方便使用,最好定义成宏定义或者枚举类型:
EM_First = 0, //第一行
EM_PriorPage = 1, //前一页
EM_Prior = 2, //前一行
EM_Next = 3, //后一行
EM_MextPage = 4, //后一页
EM_Last = 5, //最后一行
EM_Insert = 6, //插入一行
EM_Append = 7, //追加一行
EM_Delete = 8, //删除一行
EM_Edit = 9, //编辑一行
EM_Post = 10, //提交修改
EM_Cancel = 11, //取消修改
EM_Refresh = 12, //刷新
EM_SaveBookmark = 13, //保存标签
EM_GotoBookmark = 14, //前往指定行
EM_Filter = 15, //筛选
可以根据 AButtonIndex的值来处理自己编写响应的事件。
例如:
void __fastcall TFormSysConfig::cxGrid1DBTableView1NavigatorButtonsButtonClick(TObject *Sender,
int AButtonIndex, bool &ADone)
{
int nButtonIndex = AButtonIndex;
ShowMessage("Index:" + String(nButtonIndex));
if(AButtonIndex == 7)//添加一行
{
dxMemDataMeterPosInfo->Last();//先定位到最后一行
ADone = true;
dxMemDataMeterPosInfo->DisableControls();
int nXH = dxMemDataMeterPosInfo->FieldByName("METERPOS")->AsString.ToInt();
dxMemDataMeterPosInfo->Append();
dxMemDataMeterPosInfo->FieldByName("METERPOS")->AsString = AnsiString(++nXH);
dxMemDataMeterPosInfo->Post();
dxMemDataMeterPosInfo->EnableControls();
}
else if(AButtonIndex == 8) //删除一行
{
int nXH = 1;
dxMemDataMeterPosInfo->DisableControls();
for(dxMemDataMeterPosInfo->First(); !dxMemDataMeterPosInfo->Eof; dxMemDataMeterPosInfo->Next())
{
dxMemDataMeterPosInfo->Edit();
dxMemDataMeterPosInfo->FieldByName("METERPOS")->AsString = AnsiString(nXH++);
dxMemDataMeterPosInfo->Post();
}
dxMemDataMeterPosInfo->EnableControls();
}
}