项目中用了DBGridEh,同时也用了DBGrid。在OnDrawColmnCell事件中调用DefaultDrawColumnCell,编译时却提示Incompatible types错误。
其实问题很简单,就是因为DBGridEh在GridsEh单元中重新定义了TGridDrawState类型(当然与DBGrid的不同),而类型名却没有改,很明显编译器编译时首先找到的是Grids单元中定义的TGridDrawState,与它做判断当然会出现Incompatible types错误了。
解决办法:调用时加上引用单元名。即DefaultDrawColumnCell( Rect, DataCol, Column, GridsEh.TGridDrawState(State));
前面的uses加上 DBGridEh,GridsEh;这个要看情况定
出现错误的地方加上对State的强制类型转换
GridsEh.TGridDrawState(State);
Grids.TGridDrawState(State);
来源: http://blog.csdn.net/cinway/article/details/17406571