我遇到了使用C ++ Buidler XE4在TStringGrid上使用Drawcell的问题。 在我的C ++代码的一部分中,我将一些文本放在单元格中,如下面的行:
StringGrid1->Cells[x][y] = "1.0";
当我这样做时,在DrawCell事件中:
UnicodeString tmp = StringGrid1->Cells[ACol][ARow];
tmp为“1”(当ACol = x且ARow = y时)。我确信在我的代码中无处我替换“1”中的“1.0”。所以,如果有人能解释我发生了什么,我会非常优雅。
因为我实验有时它工作,有时不工作(重新编译时)。
C ++ Builder(它们是delphi的)的低层有时会交换(或类似的东西)TStringGrid后面的StringGrid吗?
答案 0 :(得分:0)
您描述的内容无法复制。知道TStringGrid
控件运行良好。如果您将一个字符串放入一个单元格中,那么相同的单元格将会返回,直到您修改它为止。
您的程序中很可能还有其他内容正在修改此功能。为了让你追踪这个,我建议你做一个SSCCE。一旦你这样做,你肯定会找到混淆的原因。