|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 585
|
|
Drag'n'Dock Мерцание и тормоза при перерисовки рамки окна07.11.2012, 18:58. Показов 4664. Ответов 10
Метки нет (Все метки)
Подскажите, пожалуйста, как избавиться от мерцания и "тормозов" при рисовании рамки окна, когда оно перемещается пользователем (DragKind = dkDock). А еще лучше, чтобы рисовалась не рамка, а прозрачный прямоугольник, как это, например, происходит при перемещении окон "Structure" (и т.п.) среды разработки Embarcadero 2010.
0
|
|
| 07.11.2012, 18:58 | |
|
Ответы с готовыми решениями:
10
Drag'n'Dock, bsToolWindow и кнопка "фиксации" окна Пропадает таб при перетаскивании его в PageControl. Drag & Dock Drag Drop Dock |
|
Супер-модератор
|
||||||||||||||||
| 08.11.2012, 01:04 | ||||||||||||||||
Сообщение было отмечено как решение
Решение
Тормозов не вижу, но если надо рисовать не стандартную рамку, а что-то своё - то в событии OnStartDock создавай DragObject как экземпляр наследника TDragDockObjectEx, в котором реализуй ImageList типа TDragImageList. В конструкторе класса просто создавай сам List, и добавляй в него одну-единственную картинку: синий прямоугольник. То есть, сам наследник будет выглядеть как-то так (тестировалось на RAD 2009) :
<Unit1.h>
4
|
||||||||||||||||
|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 585
|
|
| 08.11.2012, 18:12 [ТС] | |
|
Сделал все как описано, только не с панелями, а с окнами. Есть два нюанса: 1) Прямоугольник рисуется начиная с местоположения мыши, а не с местоположения окна. 2) Прямоугольник вообще не рисуется, когда окно находиться над док-понелью и готово "причалить".
0
|
|
|
Супер-модератор
|
||
| 08.11.2012, 18:26 | ||
|
Вот тут я показывал (правда на Дельфи), как подсветить "причал": Как перетащить и подсветить область, куда перетаскиваем объект
1
|
||
|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 585
|
||
| 08.11.2012, 19:07 [ТС] | ||
(Хочу реализовать такой же интерфейс, как в среде разработки Embarcadero Studio)
0
|
||
|
Супер-модератор
|
||
| 08.11.2012, 20:45 | ||
Попробуй. Тогда система сама будет делать то, что тебе нужно. Прямоугольник, в который будет помещен новый элемент, хранится в Source.DockRect.Тебе останется в Panel1DockOver просто отрисовывать прямоугольник, заданный этим самым Source.DockRect. Любым способом. Хочешь - создавай временную канву для панели, хочешь - рисуй через WinAPI.
0
|
||
|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 585
|
|||
| 09.11.2012, 14:05 [ТС] | |||
|
Добавлено через 1 час 0 минут
0
|
|||
|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 585
|
||
| 09.11.2012, 21:17 [ТС] | ||
|
Все супер, но после нескольких причаливаний и отчаливаний (общее число окон всегда не больше трех), все равно слетает с Access Vialation когда изменяешь размеры автоматически создаваемыми сплиттерами.
У меня Studio 2010, Win7. Добавлено через 17 минут Я обратил внимание, что в Вашем проекте все DragMode = dmManual. Это ли влияет на то, что нельзя изменить порядок расположения причаленных окон (т.е. например причалено два окна, одно расположено сверху, другое снизу). Я хочу мышкой перетащить верхнее окно на место нижнего, чтобы они поменялись местами. В Вашем проекте это можно сделать только если вытащить одно окно (двойным нажатием мыши по заголовку) и причалить его заново на новое место. Добавлено через 40 минут Вопрос оффтопом: как перехватить событиe OnClick для pin-button? Или вопрос иначе: как скрывать и отображать всю DockTabSet, когда она пуста и когда появляются на вкладке новое окно, соответсвенно?
0
|
||
|
Супер-модератор
|
|||||||
| 09.11.2012, 21:45 | |||||||
0
|
|||||||
|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 585
|
||||||||||||
| 10.11.2012, 21:42 [ТС] | ||||||||||||
Добавлено через 8 минут Кстати, Access Vailation вылетает, когда меняешь размеры окна в режиме его привязке к DockTabSet, срываешь, причаливаешь, а затем опять пытаешься изменить размеры. Добавлено через 23 часа 4 минуты По поводу Access Vailation. Простой эксперимент. Запускаем проект, добавляем два окна, причаливаем их на панель (одно слева, второй справа, появляется вертикальный сплиттер), немного изменяем размеры окон (немного сдвигам сплиттер влево/вправо). Раскрываем главное окно на весь экран. Дотрагиваемся до сплиттера - Access Vailation. Добавлено через 23 минуты Все. Разобрался. Access Vailation срабатывает, когда сплиттер отпускаешь (отпускаешь нажатую кнопку мыши) над pin-buttin'ом. Даже сама Embarcadero Studio (2010) ломается, когда делаешь то же самое с ее интерфейсом.
0
|
||||||||||||
| 10.11.2012, 21:42 | |
|
Помогаю со студенческими работами здесь
11
Drag@Dock и минимзация ТЕСТ НА DELPHI (DRAG&DOCK) Drag & Dock для динамически созданных форм Мерцание при перерисовке окна Мерцание окна при работе макроса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|