|
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 585
|
|
Drag'n'Dock Мерцание и тормоза при перерисовки рамки окна07.11.2012, 18:58. Показов 4572. Ответов 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 для динамически созданных форм Мерцание при перерисовке окна Мерцание окна при работе макроса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|