У меня проблема с использованием Drawcell в TStringGrid с C ++ Buidler XE4.
В части моего кода на C ++ я поместил немного текста в ячейки, как в следующих строках:
StringGrid1->Cells[x][y] = "1.0";
И в событии DrawCell, когда я делаю это:
UnicodeString tmp = StringGrid1->Cells[ACol][ARow];
tmp равен «1» (когда ACol = x и ARow = y). я уверен, что нигде в моем коде я заменяю «1.0» на «1». Так что, если кто-нибудь сможет объяснить мне, что случилось, я буду очень милостив.
Поскольку я экспериментирую, иногда это работает, а иногда нет (когда перекомпилируется).
Являются ли нижние уровни C ++ Builder (которые являются Delphi) иногда заменять (или что-то в этом роде) StringGrid за TStringGrid?
То, что вы описываете, не может быть воспроизведено. TStringGrid
контроль это знать, чтобы работать хорошо. Если вы поместите строку в ячейку, эта же ячейка будет возвращаться, пока вы не измените ее.
Скорее всего, в вашей программе есть что-то еще, что модифицирует это. Чтобы вы могли это отследить, я предлагаю вам сделать SSCCE. Как только вы это сделаете, вы наверняка найдете причину своего замешательства.
Других решений пока нет …