powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / вертикальный скроллинг cxgrid только вручную
8 сообщений из 8, страница 1 из 1
вертикальный скроллинг cxgrid только вручную
    #39903788
evgen29
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Есть у меня cxgrid, отображающий данные из dxmemdata, каждая строчка в которых отображает ftp одного клиента. Я наполняю dxmemdata в отдельном потоке, но если строк больше, чем высота отображения таблицы cxgrid, то появляется вертикальная полоса прокрутки. При первом запуске я забиваю dxmemdata данными о всех фтп, далее копирую dxmemdata в dxmemdatatemp. Затем для каждой строки в dxmemdatatemp считаю кол-во входящих и исходящих файлов в соответствующих для данной строки папках фтп. Затем ищу в dxmemdata по ключу, который соответствует текущему ключу в dxmemdatatemp, строку и обновляю в ней изменившиеся поля из dxmemdatatemp.

Т.е. получается своеобразный онлайн мониторинг. Перед переходом к нужному ключу в dxmemdata я сохраняю позицию сдвига и после обновления к ней возвращаюсь. Проблема в том, что каждое обновление есть мерцание вертикальной полосы прокрутки и при попытке её сдвига вниз-вверх после обновления она все-равно возвращается к текущему курсору.

Вопрос: возможно ли отвязать движение вертикальной полосы прокрутки от курсора датасета, чтобы не было дерганий при очередном обновлении строки. Т.е. строки сами по себе обновляются в потоке, а навигация по таблице предоставлена пользователю путем движения вертикальной полосы прокрутки.
...
Рейтинг: 0 / 0
вертикальный скроллинг cxgrid только вручную
    #39903790
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BeginUpdate/EndUpdate
...
Рейтинг: 0 / 0
вертикальный скроллинг cxgrid только вручную
    #39903792
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно вообще отказаться от dxMemData и постить значение в cxTableView (не DB)

...
Рейтинг: 0 / 0
вертикальный скроллинг cxgrid только вручную
    #39903898
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgen29
возможно ли отвязать движение вертикальной полосы прокрутки от курсора датасета, чтобы не было дерганий при очередном обновлении строки
могли бы быть клоны, но наверное dxmemdata в них не умеет так что пожалуй не вариант
...
Рейтинг: 0 / 0
вертикальный скроллинг cxgrid только вручную
    #39903901
evgen29
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaBr,
а можно поподробнее по beginupdate\endupdate?
я сделал через них, данные обновляются, но курсор двигается вниз. Если я держу курсор мышкой, то не двигается и данные обновляются. А если отпускаю двигается. Хотелось бы как на вашем гифе, только через cxGrid.
...
Рейтинг: 0 / 0
вертикальный скроллинг cxgrid только вручную
    #39903986
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так в GIF и есть cxGrid, просто отвязанный от датасета.
Если вы упорствуете на применение dxMemData, то
Код: pascal
1.
2.
3.
4.
5.
6.
7.
dxMemData.DisableControl;
KeyId := dxMemData['KeyId'];
dxMemData.Locate();
dxMemData.Edit;
dxMemData['Value'] := NewValue;
dxMemData.Locate(KeyId);
dxMemData.EnabledControl;



эти телодвижение вместо всего одно сточки
Код: pascal
1.
cxTableView.DataController.Values[RecId,ColumnId] := Value;
...
Рейтинг: 0 / 0
вертикальный скроллинг cxgrid только вручную
    #39904034
evgen29
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaBr,
без привязки к датасету к столбцам можно обратиться только по имени. Такой код потом неудобно поддерживать будет.
...
Рейтинг: 0 / 0
вертикальный скроллинг cxgrid только вручную
    #39904042
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgen29

без привязки к датасету к столбцам можно обратиться только по имени. Такой код потом неудобно поддерживать будет.

Дайте правильно имя столбцу и жить станет проще.
А обратиться можно не только по имени, но и по индексу.
У вас в программе огромное количество компонент, к которым вы обращаетесь по имени. Вас это не смущает ?
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / вертикальный скроллинг cxgrid только вручную
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]