Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
TCategoryPanelGroup: саморазворачивание CategoryPanel при максимизации формы
|
|||
|---|---|---|---|
|
#18+
Столкнулся с такой проблемой в Delphi XE4 (возможно, в новых версиях уже исправлено). На форме размещена группа свёрнутых панелей TCategoryPanel . При разворачивании окна формы во весь экран (двойным кликом по заголовку формы) раскрывается одна из панелей . Заголовок этой панели после разворачивания окна располагается точно на месте заголовка окна до разворачивания. Получается, окно развернулось (заголовок прижался кверху, группа панелей сместилась вверх), а двойной клик ложно обрабатывается CategoryPanel. Проблемы нет при разворачивании окна по системной кнопке или программно (wsMaximized). Пытался отловить двойной клик по заголовку окна : 1 вариант: Добавляю обработку OnExpand/OnCollapse, меняю состояние панели при ложном срабатывании. 2 вариант: После максимизации можно разместить поверх модальное окно (фокус переходит на него). Можно использовать диалоговое окно или форму с ProgressBar и закрытием по таймеру. Решение рабочее, но некрасивое. Код: 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. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. Решение по 1 варианту неполное. Не обрабатывается ситуация, когда DBLCLK не попадает по координатам заголовка панели. В результате первый клик по заголовку будет проигнорирован (captionDblClicked=true). Нужно предварительно вычислять координаты (попадет ли DBLCLK по заголовку) и пр. Можете предложить более оптимальное решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2021, 03:10 |
|
||
|
TCategoryPanelGroup: саморазворачивание CategoryPanel при максимизации формы
|
|||
|---|---|---|---|
|
#18+
AlexDX4, можно попробовать что то типа Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2021, 10:24 |
|
||
|
TCategoryPanelGroup: саморазворачивание CategoryPanel при максимизации формы
|
|||
|---|---|---|---|
|
#18+
Zelius, Спасибо за предложение, но не сработало. Handled := True не оказывает влияния на этот ложный DBLCLCK и с отсрочкой по времени и без (GetTickCount). Ранее я пытался отлавливать нажатие через ApplicationEvents.OnMessage , но убедился, что Handled := True не влияет в этом случае. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2021, 02:04 |
|
||
|
TCategoryPanelGroup: саморазворачивание CategoryPanel при максимизации формы
|
|||
|---|---|---|---|
|
#18+
В приведённом выше Варианте 1 можно было бы обойтись без присваивания событий OnExpand/OnCollapse если влезть в процедуры Expand/Collapse . Но так не получилось: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2021, 02:09 |
|
||
|
TCategoryPanelGroup: саморазворачивание CategoryPanel при максимизации формы
|
|||
|---|---|---|---|
|
#18+
мдаа, задачка... тут имхо либо наследовать и переписывать или Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2021, 12:03 |
|
||
|
TCategoryPanelGroup: саморазворачивание CategoryPanel при максимизации формы
|
|||
|---|---|---|---|
|
#18+
Zelius, Спасибо большое! Работает "заморозка" железно, глушит DBLCLCK . Ещё бы таймер задавать "не с потолка", но и так, вполне, можно оставить. Если первый клик по панели не сработает, можно списать на мышку. Вместо onResize, думаю, лучше оставить отлов DBLCLCK при максимизации, меньше шансов попасть на "заморозку" панелей. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2021, 02:18 |
|
||
|
|

start [/forum/topic.php?fid=58&gotonew=1&tid=2037387]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
198ms |
get topic data: |
8ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 283ms |
| total: | 571ms |

| 0 / 0 |
