如果工程里既有TDBGridEh和stringgrid,在写stringgrid的StringGrid1DrawCell()时会报错,怎么回事呢?

yung 2007-03-16 03:56:36
错误如下:

E2015 Ambiguity between 'TGridDrawState' and 'Grids::TGridDrawState'

我把消息改成void __fastcall StringGrid1DrawCell(TObject *Sender, int ACol,int ARow, TRect &Rect,Grids::TGridDrawState State);

但是程序根本不响应这个函数了,怎么回事呢?

...全文
246 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2007-03-19
  • 打赏
  • 举报
回复
或者这样:

StringGrid1->OnDrawCell = TDrawCellEvent(StringGrid1DrawCell);
StringGrid2->OnDrawCell = TDrawCellEvent(StringGrid2DrawCell);
ccrun.com 2007-03-19
  • 打赏
  • 举报
回复
StringGrid1DrawCell和StringGrid2DrawCell函数这样声明和定义:

void __fastcall StringGrid1DrawCell(TObject *Object, int X, int Y, const TRect &Rect, Grids::TGridDrawState State)
{
...
}
yung 2007-03-19
  • 打赏
  • 举报
回复
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
StringGrid1->OnDrawCell = StringGrid1DrawCell;
StringGrid2->OnDrawCell = StringGrid2DrawCell;
}
这里报错了:
[C++ Error] audit.cpp(35): E2034 Cannot convert 'void (_fastcall * (_closure )(TObject *,int,int,TRect &,Grids::TGridDrawState))(TObject *,int,int,TRect &,Grids::TGridDrawState)' to 'void (_fastcall * (_closure )(TObject *,int,int,const TRect &,Grids::TGridDrawState))(TObject *,int,int,const TRect &,Grids::TGridDrawState)'
什么问题呢?



ccrun.com 2007-03-16
  • 打赏
  • 举报
回复
TGridDrawState名字空间冲突问题及解决方法
http://www.ccrun.com/article.asp?i=1003&d=15f173

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧