在C++Builder或Delphi中实现中文的删除确认对话框,一般的做法是修改VCL源码,替换掉dbconsts.pas和consts.pas文件中相关的英文字符串为中文,然后再将修改过的VCL源文件添加到工程中,在需要中文化的字符串比较多时用这种方法比较好,不过在编译时需要取消工程选中中的设置(取消Project-->Options-->Packages-->Build with runtime packages前的对钩)。如果需要汉化的地方不太多,完全可以用另外一种方法,简单方便:
在单元文件中随便一个地方插入以下代码:
void __fastcall TDBNavigator::BtnClick(TNavigateBtn Index)
{
if(DataSource != NULL && DataSource->State != dsInactive)
{
if(!(ComponentState.Contains(csDesigning)) && FBeforeAction != NULL)
FBeforeAction(this, Index);
//
switch(Index)
{
case nbPrior: DataSource->DataSet->Prior();
case nbNext: DataSource->DataSet->Next();
case nbFirst: DataSource->DataSet->First();
case nbLast: DataSource->DataSet->Last();
case nbInsert: DataSource->DataSet->Insert();
case nbEdit: DataSource->DataSet->Edit();
case nbCancel: DataSource->DataSet->Cancel();
case nbPost: DataSource->DataSet->Post();
case nbRefresh: DataSource->DataSet->Refresh();
case nbDelete:
{
if(!FConfirmDelete ||
MessageBox(0, "确定要删除这条记录吗?",
"确认", MB_OKCANCEL | MB_ICONQUESTION) != IDCANCEL)
DataSource->DataSet->Delete();
}
}
}
if(!(ComponentState.Contains(csDesigning)) && FOnNavClick != NULL)
FOnNavClick(this, Index);
}