Ну, с ошибкой синтаксиса понятно, я ж не помню точно какая там структура объекта, это надо в DevExpress лезть. По сути, там надо было просто получить кол-во элементов в св-ве Strigs объекта Node, просто проверяем что объект существует и доступен. Попробуй просто Node.Count (посмотри по подсказке, может св-во нвзывается ItemCount или как-то еще). Но это не важно, см дальше.
Собственно, если посмотришь на 10й (вроде) скрин, то ответ там уже есть. Код
Код:
if Node = nil then
Node := TdxDBGrid(Sender).TopVisibleNode;
Уже выполнился, а вот в переменной Node значение все-равно Nil.
Теперь вопрос - почему. В чем разница настройки гридов или компонентов доступа к БД, что в одном случае вызов TopVisibleNode что-то возвращает, а во втором случае - нет.
В принципе, можно сделать маленькую заглушку. Как я понимаю, данный код заполняет фильтр. А если нет данных, то и фильтровать нечего. Так что после получения Node просто проверяем еще раз на Nil и выходим. Как-то так:
Код:
if Node = nil then
begin
Node := TdxDBGrid(Sender).TopVisibleNode;
if Node = nil then exit;
end;
Возможно, будет работать.