![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
динамический массив в gride [D7, WinXP]
New_User © (2004-09-01 19:09:00)Привет всем!
Создаю компонент MyGrid на основе drawgrid использую в нем динамический массив который хранит информацию о характеристике каждой ячейки, как и где его нужно оглавлять и изменять его размер правильно, а то я видимо что-то делаю не так
(размер в начале задаю в create, а дальше увеличиваю число строк и пытаюсь изменить массив в процедуре drawcell но безрезультатно, а после закрытия проги выбрасывает ошибку, причем я пытаюсь записать данные в несуществующие ячейки но ошибку не выдает, а только после выхода )
New_User (2004-09-02 19:38:00) [1]Спасибо за подробный ответ - буду пробывать !
Юрий Зотов (2004-09-02 09:53:00) [2]DrawCell - это отрисовка ячеек (как заполненных, так и пустых). А Ваш массив - это хранение информации. Какое отношение имеет одно к другому? Никакого. Так зачем же завязывать изменение размеров массива на метод отрисовки?
Смотрим исходники. Видим, что у DrawGrid есть свойства RowCount и ColCount, а у них есть методы записи SetRowCount и SetColCount. Каждый из этих методов вызывает метод ChangeSize, тот вызывает внутреннюю процедуру DoChange, а из нее вызывается динамический метод SizeChanged. Таким образом, если Вы в своем потомке заместите метод SizeChanged, то он будет автоматически вызываться при любом изменении количества строк или столбцов в таблице. Вот там и пишите установку размеров своего массива - и тогда Ваш массив всегда будет четко и автоматически синхронизирован с массивом самих ячеек.
И не нужны никакие начальные размеры в Create, и уж тем более никакие DrawCell.