Построитель С++ TstringGrid получает строку из определенной ячейки

Привет всем, у меня есть C++ tStringGrid

Я хочу получить строку из определенной ячейки с координатами

Я пробовал это, но безуспешно:

UnicodeString cell_obj = StringGrid1->Objects[3][2]->ToString();

Ошибка:

Access violation at address 00407617 in module 'NGG_Client.exe'. Read of address 00000000.

Пожалуйста помоги.


person user525717    schedule 01.07.2012    source источник
comment
Вы знаете, насколько велика сетка? то есть: 3,2 выходит за пределы?   -  person Zac    schedule 02.07.2012
comment
да я знаю, что исправлено....   -  person user525717    schedule 02.07.2012
comment
@Zac: адрес, который он читает, является указателем NULL. Вероятно, указанная ячейка не инициализирована.   -  person user7116    schedule 02.07.2012
comment
@ user525717: Можете ли вы показать нам, что такое ColCount и RowCount во время выполнения? Возможно, Objects[3,2] имеет значение null, или покажите нам больше о StringGrid1 (который также может быть NULL).   -  person user7116    schedule 02.07.2012
comment
Вы имеете в виду эти объекты? ››› Form1-›StringGrid1-›Cells[1][i] = name.c_str(); Form1->StringGrid1->Cells[2][i] = address.c_str();   -  person user525717    schedule 02.07.2012


Ответы (1)


У меня нет рабочей среды разработки, которая может это построить, но попробуйте:

assert( StringGrid1->ColCount > 3 && StringGrid1->RowCount > 2 );
UnicodeString cell_str = StringGrid1->Cells[3][2];

Это может быть AnsiString вместо UnicodeString.

person Zac    schedule 01.07.2012
comment
Также StringGrid1 может быть нулевым. - person user7116; 02.07.2012
comment
Также неплохо поместить туда и утверждение - просто чтобы проверить предположения вашего кода. Можно также включить StringGrid1 != nullptr из @sixlettervariables в утверждение. - person Zac; 02.07.2012