|
|
|
Странное поведение TDBGrid
|
|||
|---|---|---|---|
|
#18+
Добрый день всем! Заметил странное поведение TDBGrid, если есть обработчик DataSet.AfterScoll и в этом обработчике нужно "пробежаться" по записям грида. Если использовать код ниже, во время скроллинга текущая запись всегда остается в середине грида (за исключением начальных и конечных записей датасета). Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Вся соль в коде Код: pascal 1. 2. Если его убрать, перемещение по записям грида идет стандартное. Хотелось бы избавиться от нежелательного поведения. Заранее благодарен за идеи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2020, 17:28 |
|
||
|
Странное поведение TDBGrid
|
|||
|---|---|---|---|
|
#18+
03.04.2020 17:28, Belotsky Serge пишет: > Заметил странное поведение TDBGrid, если есть обработчик DataSet.AfterScoll и в этом обработчике нужно "пробежаться" по записям грида. В ГРИДЕ ДАННЫХ НЕТ! (С) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2020, 17:56 |
|
||
|
Странное поведение TDBGrid
|
|||
|---|---|---|---|
|
#18+
Belotsky Serge Заранее благодарен за идеи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2020, 19:56 |
|
||
|
Странное поведение TDBGrid
|
|||
|---|---|---|---|
|
#18+
bk0010 Belotsky Serge Заранее благодарен за идеи! Вопрос: как "пробежаться" по записям датасета внутри DataSet.AfterScroll, потом вернуться на активную запись при вызове AfterScroll и при этом, чтобы DBGrid вел себя обычно (стандартным образом). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2020, 07:43 |
|
||
|
Странное поведение TDBGrid
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий 03.04.2020 17:28, Belotsky Serge пишет: > Заметил странное поведение TDBGrid, если есть обработчик DataSet.AfterScoll и в этом обработчике нужно "пробежаться" по записям грида. В ГРИДЕ ДАННЫХ НЕТ! (С) Не флеймите, я имел ввиду датасет, привязанный к DBGrid. У датасета, надеюсь, есть записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2020, 07:44 |
|
||
|
Странное поведение TDBGrid
|
|||
|---|---|---|---|
|
#18+
Belotsky Serge, Для ADO и MSSQL Код: pascal 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2020, 11:15 |
|
||
|
Странное поведение TDBGrid
|
|||
|---|---|---|---|
|
#18+
Gerasimenko Belotsky Serge, Для ADO и MSSQL Код: pascal 1. 2. 3. 4. 5. 6. 7. Увы, я пользуюсь стандартным TDataSet. Нет в нем методов RecordSet или Clone. Да и трудозатратно все это. Я подозреваю, что в момент DataSet.EnableControls, DBGrid обновляет себя таким образом, чтобы текущая запись была по середине грида (если она не в начале или в конце). Если бы DBGrid было свойство TopRow (как у TStringGrid), я бы попробовал запомнить его и вернуть его обратно после DataSet.EnableControls. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2020, 11:54 |
|
||
|
Странное поведение TDBGrid
|
|||
|---|---|---|---|
|
#18+
Belotsky Serge Увы, я пользуюсь стандартным TDataSet. Нет в нем методов RecordSet или Clone. Да и трудозатратно все это. Стандартный TDataSet - это абстрактный класс, который САМ ничего не умеет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2020, 13:22 |
|
||
|
Странное поведение TDBGrid
|
|||
|---|---|---|---|
|
#18+
DimaBr Belotsky Serge Увы, я пользуюсь стандартным TDataSet. Нет в нем методов RecordSet или Clone. Да и трудозатратно все это. Стандартный TDataSet - это абстрактный класс, который САМ ничего не умеет В моем случае - TOraQuery (TOraDataSet) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2020, 14:16 |
|
||
|
Странное поведение TDBGrid
|
|||
|---|---|---|---|
|
#18+
Belotsky Serge, Можете описать изначальную задачу, которую вы решили столь нестандартным образом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2020, 09:39 |
|
||
|
Странное поведение TDBGrid
|
|||
|---|---|---|---|
|
#18+
Belotsky Serge DimaBr пропущено... Стандартный TDataSet - это абстрактный класс, который САМ ничего не умеет В моем случае - TOraQuery (TOraDataSet) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2020, 10:42 |
|
||
|
Странное поведение TDBGrid
|
|||
|---|---|---|---|
|
#18+
Belotsky Serge, Написать хранимую процедуру, которая сделает необходимые манипуляции с данными. Потом сделать Refresh вашей Query и отобразить изменения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2020, 11:46 |
|
||
|
Странное поведение TDBGrid
|
|||
|---|---|---|---|
|
#18+
vavan Belotsky Serge пропущено... В моем случае - TOraQuery (TOraDataSet) Клонирование трудозатратно. Да и "бегаю" я только по записям выделенным в гриде. Условно говоря, юзер выделяет записи в гриде, а программа считает статистику "на лету". Выделяет он зажав Shift, при этом происходит вызов AfterScroll, после очередной выделенной записи. Задачу можно решить по-другому, просто хотелось бы решить задачу без лишних телодвижений минимальными усилиями. Да и самому интересно стало, можно ли перемещаться по записям в AfterScroll и сохранить стандартное поведение грида. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2020, 15:17 |
|
||
|
Странное поведение TDBGrid
|
|||
|---|---|---|---|
|
#18+
Belotsky Serge, На время "хождения по записям" - отключить грид от датасета. Потом - вернуть взад? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2020, 15:27 |
|
||
|
Странное поведение TDBGrid
|
|||
|---|---|---|---|
|
#18+
DarkMaster Belotsky Serge, На время "хождения по записям" - отключить грид от датасета. Потом - вернуть взад? Это вряд ли, как только подключается датасет, пропадет все выделение, это если еще и позиция записи не изменится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2020, 16:06 |
|
||
|
Странное поведение TDBGrid
|
|||
|---|---|---|---|
|
#18+
Belotsky Serge, Пробежатся перед по гриду/дадасету, запомнить ИД выделенных записей? Без этого AfterScroll? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2020, 22:30 |
|
||
|
Странное поведение TDBGrid
|
|||
|---|---|---|---|
|
#18+
Belotsky Serge Клонирование трудозатратно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2020, 09:24 |
|
||
|
Странное поведение TDBGrid
|
|||
|---|---|---|---|
|
#18+
DarkMaster Belotsky Serge, Пробежатся перед по гриду/дадасету, запомнить ИД выделенных записей? Без этого AfterScroll? Простой код: Код: pascal 1. Если есть привязанный к датасету грид, то он отрисуется так, чтобы текущая запись была посередине, не не передвинулась на несколько записей вперед ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2020, 16:41 |
|
||
|
Странное поведение TDBGrid
|
|||
|---|---|---|---|
|
#18+
Если надо бегать по датасету без генерации событий то как вариант Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Только возвращать позицию на место не забудь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2020, 10:55 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39943790&tid=2038415]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 392ms |

| 0 / 0 |
