|
|
|
Параллельная прокрутка гридов
|
|||
|---|---|---|---|
|
#18+
Имеется два грида с идентичными полями, но датасеты возвращают в них данные например для разных периодов и было бы удобно сравнивать значения в этих гридах так, чтобы была возможность "сцепить" прокрутку в обоих гридах чтобы прокручивая влево/вправо любой из двух гридов, второй автоматом точно так же прокручивался бы, то есть чтобы поля гридов были друг под другом. Можно конечно обойтись и одним гридом, но все же это не очень удобно в моем случае. Вопрос как бы это организовать? Как-то ловить на окне крутящегося грида сообщения прокрутки и отправлять по hwnd какое-то сообщение окну-гриду который надо тоже крутить? Но как и какие именно сообщения не знаю ) Или может есть вариант попроще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2013, 15:12:07 |
|
||
|
Параллельная прокрутка гридов
|
|||
|---|---|---|---|
|
#18+
а ведь еще будет вопрос о синхронизации ширины колонок... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2013, 19:55:57 |
|
||
|
Параллельная прокрутка гридов
|
|||
|---|---|---|---|
|
#18+
andreymxа ведь еще будет вопрос о синхронизации ширины колонок...Это фигня! А вдруг будет, как синхронизировать "прокрутку гридов" между WinRT и iOS на разных полушариях ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2013, 21:16:39 |
|
||
|
Параллельная прокрутка гридов
|
|||
|---|---|---|---|
|
#18+
Ширину колонок легко синхронизировать - отлавливая событие OnColWidthChanged основного грида. В EhLib такое событие есть. У меня таже самая ситуация: 2 грида. Полностью идентичные. Я их положил один под другим, и у второго скрыл Titles. Все смотриться отлично. Но как ловить событие горизонтальной прокрутки я так и не докумекал. Даже внешние скролбары встраивал в основной грид. Благо Ehlib их поддерживает. Но все равно ничего не получилось. Так что вопрос открытый и очень интересный. Тынц от Дока не в тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2013, 21:56:48 |
|
||
|
Параллельная прокрутка гридов
|
|||
|---|---|---|---|
|
#18+
jserrg, вы решите для себя, что собираетесь синхронизировать. "картинки" на экране или курсоры в датасетах? Или просто master-detail, банальная индексация и пр. дет.сад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2013, 22:59:24 |
|
||
|
Параллельная прокрутка гридов
|
|||
|---|---|---|---|
|
#18+
jserrgТынц от Дока не в тему. Вообще-то, сначала было желание ткнуть ТС'а носом сюда . В следующий раз так и сделаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2013, 00:32:15 |
|
||
|
Параллельная прокрутка гридов
|
|||
|---|---|---|---|
|
#18+
Не. Курсоры тут не причем. Мастер-дитейл тоже не причем. Я хочу, как и автор темы, прокручивать грид влево-вправо . Горизонтальная прокрутка, а не вертикальная. Два грида. Одинаковые колонки. Хочу нажать на горизонтальную скролбар одного грида, и чтоб при этом второй грид тоже поворачивался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2013, 00:40:30 |
|
||
|
Параллельная прокрутка гридов
|
|||
|---|---|---|---|
|
#18+
jserrgЯ хочу, как и автор темы, прокручивать грид влево-вправо . Горизонтальная прокрутка, а не вертикальная. Е-мое. Вот о чем. Приношу свои извинения, невнимательно прочел старттопик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2013, 22:13:38 |
|
||
|
Параллельная прокрутка гридов
|
|||
|---|---|---|---|
|
#18+
ДокjserrgЯ хочу, как и автор темы, прокручивать грид влево-вправо . Горизонтальная прокрутка, а не вертикальная. Е-мое. Вот о чем. Приношу свои извинения, невнимательно прочел старттопик Док! Нормально ты всё прочитал. Просто вопрос "завуалирован"... хи-хи Это это и выглядит, как "синхронизация картинок". Т.е. У обоих SrcGrid и DestGrid известны - ширина всего грида и ширина колонок, их видимость на экране/панельке/окошке и проч. параметры - положение HScroll; Остается написать арифметику а-ля DestGrid.HScrollPosition := Recalculate (SrcGrids.HScrollPosition) Ну, добавить в Tags прописать структуру, где бы хранились коэффициенты пересчета ширин (экрана/формы/грида/колонок/чёрта лысого). Править её при соответствующих ресайзах/ремувах. _____________ Это в общем случае. А для двух Авторских сеток навскидку достаточно одинаковых обработчиков событий. Типа OnColumnMove, OnColumnChange etc. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2013, 22:51:01 |
|
||
|
Параллельная прокрутка гридов
|
|||
|---|---|---|---|
|
#18+
Ehlibovod, ну, для обычного TDBGrida можно сделать наследника, в котором перекрыть WMHScroll. Его можно даже не регистрировать в дизайнере, задав классу такое-же имя, т.е что-то типа того: Код: 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. (если такое поведение нужно на разных формах, то юнит, в котором описан измененный TDBGrid, должен в uses идти после DBGrids). Можно и без наследника, подставив гридам свой WindowProc. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2013, 00:58:39 |
|
||
|
Параллельная прокрутка гридов
|
|||
|---|---|---|---|
|
#18+
Странно видеть 2 разные конструкции в одном месте. По идее нужно было написать так Код: pascal 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2013, 03:49:25 |
|
||
|
Параллельная прокрутка гридов
|
|||
|---|---|---|---|
|
#18+
Спасибо всем. Сделал через переопределение WindowProc и отлов в нем WM_HSCROLL. Работает нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 16:32:44 |
|
||
|
Параллельная прокрутка гридов
|
|||
|---|---|---|---|
|
#18+
Ehlibovod, Можешь скинуть пример кода? WindowProc переопределял прямо в EhLib-e? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 17:49:21 |
|
||
|
Параллельная прокрутка гридов
|
|||
|---|---|---|---|
|
#18+
Такой вот изврат: :) Код: 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2013, 11:05:12 |
|
||
|
Параллельная прокрутка гридов
|
|||
|---|---|---|---|
|
#18+
2 грида скроляться синхронно. Спасибо всем! Единственное что дополнительно пришлось сделать - это отключить HorzScrollBar.Tracking у гридов. При этом Tracking (Grid repainting while drugging the thumb tab) все так же продолжает работает. По крайней мере так ведет себя мой EhLib 6.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2013, 21:13:12 |
|
||
|
Параллельная прокрутка гридов
|
|||
|---|---|---|---|
|
#18+
Здесь решение для Ehlib 9.1: http://forum.ehlib.com/ru/viewtopic.php?f=4&t=2265 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2017, 20:21:57 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=144&tid=2042290]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
71ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 379ms |

| 0 / 0 |
