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

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

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

...
Рейтинг: 0 / 0
17.12.2019, 10:48
    #39903898
vavan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вертикальный скроллинг cxgrid только вручную
evgen29
возможно ли отвязать движение вертикальной полосы прокрутки от курсора датасета, чтобы не было дерганий при очередном обновлении строки
могли бы быть клоны, но наверное dxmemdata в них не умеет так что пожалуй не вариант
...
Рейтинг: 0 / 0
17.12.2019, 10:51
    #39903901
evgen29
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вертикальный скроллинг cxgrid только вручную
DimaBr,
а можно поподробнее по beginupdate\endupdate?
я сделал через них, данные обновляются, но курсор двигается вниз. Если я держу курсор мышкой, то не двигается и данные обновляются. А если отпускаю двигается. Хотелось бы как на вашем гифе, только через cxGrid.
...
Рейтинг: 0 / 0
17.12.2019, 12:14
    #39903986
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вертикальный скроллинг cxgrid только вручную
Так в 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
17.12.2019, 12:55
    #39904034
evgen29
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вертикальный скроллинг cxgrid только вручную
DimaBr,
без привязки к датасету к столбцам можно обратиться только по имени. Такой код потом неудобно поддерживать будет.
...
Рейтинг: 0 / 0
17.12.2019, 13:05
    #39904042
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вертикальный скроллинг cxgrid только вручную
evgen29

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

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


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