skaplich Опубликовано 20 мая, 2015 Поделиться Опубликовано 20 мая, 2015 (изменено) Привет всем! Имеется TGrid. У него 10 колонок TimageColumn. По нажатию на кнопку добавляю строки GridLand.RowCount:=GridLand.RowCount+1; GridLand.Selected:=GridLand.RowCount; // выбираю последнюю добавленную строку // смотрю сколько строк в гриде, а сколько реально есть в столбце Label1.Text:='Col='+IntToStr(GridLand.ColumnCount)+' row ChildrenCount='+IntToStr(GridLand.Columns[3].ChildrenCount)+' row Grid='+IntToStr(GridLand.RowCount); Прикол в том, что на цифре 9 GridLand.Columns[3].ChildrenCount (номер столбца от 0-до 9 значения не имеет), GridLand.Columns[3].ControlsCount - то же самое останавливается, а строки добавляются дальше. То есть строки GridLand.RowCount увеличиваются, а GridLand.Columns[3].ChildrenCount больше 9 не бывает! И доступа к элементам выше 9 нет GridLand.Columns[2].Children , где i>=10 и i<=GridLand.RowCount дает ошибку Argument out of range Жду предложений как исправить данный глюк! Изменено 20 мая, 2015 пользователем skaplich Цитата Ссылка на комментарий
0 Администраторы Brovin Yaroslav Опубликовано 20 мая, 2015 Администраторы Поделиться Опубликовано 20 мая, 2015 Добрый день, Какая у вас версия RAD Studio? Цитата Ссылка на комментарий
0 skaplich Опубликовано 20 мая, 2015 Автор Поделиться Опубликовано 20 мая, 2015 XE5 Цитата Ссылка на комментарий
0 skaplich Опубликовано 20 мая, 2015 Автор Поделиться Опубликовано 20 мая, 2015 Даже если GridLand.RowCount:=20 к примеру делаем сразу, а не по строке, все равно ChildrenCount выше 9 для столбца не поднимается Цитата Ссылка на комментарий
0 Администраторы Brovin Yaroslav Опубликовано 20 мая, 2015 Администраторы Поделиться Опубликовано 20 мая, 2015 Тяжело вам сейчас сказать. Так как в следующих версиях концепция грида изменилась и он в настоящий момент не содержит контрол-ячеек. В вашем случае, на счет количества ячеек, я думаю, что там использована оптимизация. И ячейки при прокручивании просто перемещаются и обновляются новыми данными, вместо того, чтобы создавать 100 или 1000 ячеек столбца. Поэтому там скорее всего будет всегда только видимое количество ячеек. Это можно проверить путем изменения высоты грида и проверки при этом количество. skaplich и Kitty 2 Цитата Ссылка на комментарий
0 skaplich Опубликовано 20 мая, 2015 Автор Поделиться Опубликовано 20 мая, 2015 (изменено) Спасибо большое за подсказку, реально, только видимые! Если высоту строки поменять, чтобы все было видно, то тогда все в ажуре. Изменено 20 мая, 2015 пользователем skaplich Цитата Ссылка на комментарий
0 Администраторы Brovin Yaroslav Опубликовано 20 мая, 2015 Администраторы Поделиться Опубликовано 20 мая, 2015 Не за что. Цитата Ссылка на комментарий
Вопрос
skaplich
Привет всем!
Имеется TGrid. У него 10 колонок TimageColumn.
По нажатию на кнопку добавляю строки
GridLand.RowCount:=GridLand.RowCount+1;
GridLand.Selected:=GridLand.RowCount; // выбираю последнюю добавленную строку
// смотрю сколько строк в гриде, а сколько реально есть в столбце
Label1.Text:='Col='+IntToStr(GridLand.ColumnCount)+' row ChildrenCount='+IntToStr(GridLand.Columns[3].ChildrenCount)+' row Grid='+IntToStr(GridLand.RowCount);
Прикол в том, что на цифре 9 GridLand.Columns[3].ChildrenCount (номер столбца от 0-до 9 значения не имеет),
GridLand.Columns[3].ControlsCount - то же самое
останавливается, а строки добавляются дальше.
То есть строки GridLand.RowCount увеличиваются, а GridLand.Columns[3].ChildrenCount больше 9 не бывает!
И доступа к элементам выше 9 нет
GridLand.Columns[2].Children , где i>=10 и i<=GridLand.RowCount дает ошибку
Argument out of range
Жду предложений как исправить данный глюк!
Изменено пользователем skaplichСсылка на комментарий
6 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.