![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Плавающая панель инструментов [Delphi]
Leonid © (2005-06-08 13:21:00)Здравствуйте!
У меня такой вопрос.
Как можно создать плавающую панель инструментов на подобии плавающей панели инструментов, например, в photoshop'е. Проблема заключается в следующем: я задаю borderStylr := bsToolWindow, FormStyle := fsStayOnTop. Это, конечно, всё просто, но необходимо сделать так, чтобы когда я перевожу фокус на это плавующее окно (к примеру из главной формы), главная форма была "активной". То есть при выполнении каких-то действий в плавающей панели инструментов (нажатия кнопок...) главная форма оставалась активной. Я не могу понять как это можно реализовать?
Заранее благодарен.
SPeller (2005-06-12 11:12:00) [1]А если поколдовать с WM_NCACTIVATE?
Leonid (2005-06-11 20:49:00) [2]Наверное возможно, но как?
Да, кстати, в WinRar'e окно с индикатором процесса дочернее окно.
Вот если бы сделать так, чтобы плавающая панель не была дочерней и была бы ВСЕГДА неактивной, то можно было сделать её BorderStyle:= bsSingle и шапку рисовать вручную, синем цветом, как будто она активна.
Dimaxx (2005-06-11 19:42:00) [3]А вы замечали, что в WinRAR окно с индикатором процесса ВСЕГДА неактивно! Даже если по ТАБ переключаться между кнопками. Это тоже как-то реализовано. Ведь WinRAR написан на с-билдере. Если такой изврат возможен, то почему невозможно сделать окно на главном окне и чтобы они оба были "в фокусе", то есть заголовки окон были одинаковыми.
Leonid (2005-06-09 10:56:00) [4]Да, я был бы очень благодарен если бы Вы привели код.
Thaddy (2005-06-08 22:52:00) [5]I did understand ;)
I will make an example of what you mean. It may be usefull for others too.
Leonid (2005-06-08 22:02:00) [6]Thaddy, я не совсем понял: Вы имеете ввиду, что когда плавающая форма получает фокус переводить его на главную форму? Если так делать, то заметно как шапка основной формы мелькает, так как всё же на мнгновение она становится неактивной.
Да, кстати, то о чём я спрашиваю реализовано не только в фотошопе, но и во многих других приложениях. Например, если вытащить мышкой панель инструментов из Word', то она (пенель инструментов) превращается в форму как раз такого же типа.
Thaddy (2005-06-08 20:26:00) [7]Correct. Also in newer versions.
Work around:
I store the last focused window and restore it immediately after selection on toolwindow back to where it was, using OnKeyUp en OnMouse handlers. This works good.
Владимир Кладов (2005-06-08 19:09:00) [8]Может фотошоп просто не дает свои окнам фокус. И рисует их полностью сам. Правда, у меня старый, версии 3.
GLFox (2005-06-08 17:15:00) [9]А нафига надо, чтоб оно было активно? Сделал дело на панели - делай Activate главной формы.
r00se (2005-06-08 17:07:00) [10]Удалено модератором