relictus
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору VolgaLEG Проблема, скорее всего, кроется в том, что вы пытаетесь получить доступ к строкам узла (Node.Strings[AColumn.Index]) в ситуации, когда узла (Node) фактически нет. Вот почему. Проблема с пустым Grid: когда в вашем Grid нет данных, TdxDBGrid(Sender).TopVisibleNode возвращает nil. Впоследствии, когда вы пытаетесь получить доступ к Node.Strings, вы получаете ошибку "Access Violation". Почему на FormOK работает. На FormOK, вероятно, в вашем Grid есть хотя бы один узел, поэтому TdxDBGrid(Sender).TopVisibleNode возвращает действительный узел, и все работает. Решение. Проверка на nil: перед попыткой доступа к Node.Strings, всегда проверяйте, что Node не равен nil. Альтернативный подход. Если вы не хотите использовать TopVisibleNode, можно попробовать использовать GetFirstVisible для получения первого видимого узла. Дополнительные советы: - используйте отладчик Delphi для пошагового выполнения вашего кода и отслеживания значения Node в разных точках. Это поможет вам определить, когда Node становится nil. - ознакомьтесь с документацией для ExpressQuantumGrid. Она должна содержать информацию о том, как правильно работать с TopVisibleNode и GetFirstVisible. |