Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.12;
Скачать: CL | DM;

Вниз

Плавающая панель инструментов   Найти похожие ветки 

 
Leonid   (2005-06-08 13:21) [0]

Здравствуйте!
У меня такой вопрос.
Как можно создать плавающую панель инструментов на подобии плавающей панели инструментов, например, в  photoshop"е. Проблема заключается в следующем: я задаю borderStylr := bsToolWindow, FormStyle := fsStayOnTop. Это, конечно, всё просто, но необходимо сделать так, чтобы когда я перевожу фокус на это плавующее окно (к примеру из главной формы), главная форма была "активной". То есть при выполнении каких-то действий в плавающей панели инструментов (нажатия кнопок...) главная форма оставалась активной. Я не могу понять как это можно реализовать?

Заранее благодарен.


 
r00se ©   (2005-06-08 17:07) [1]

Удалено модератором


 
GLFox ©   (2005-06-08 17:15) [2]

А нафига надо, чтоб оно было активно? Сделал дело на панели - делай Activate главной формы.


 
Владимир Кладов   (2005-06-08 19:09) [3]

Может фотошоп просто не дает свои окнам фокус. И рисует их полностью сам. Правда, у меня старый, версии 3.


 
Thaddy   (2005-06-08 20:26) [4]

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.


 
Leonid   (2005-06-08 22:02) [5]

Thaddy, я не совсем понял: Вы имеете ввиду, что когда плавающая форма получает фокус переводить его на главную форму? Если так делать, то заметно как шапка основной формы мелькает, так как всё же на мнгновение она становится неактивной.

Да, кстати, то о чём я спрашиваю реализовано не только в фотошопе, но и во многих других приложениях. Например, если вытащить мышкой панель инструментов из Word", то она (пенель инструментов) превращается в форму как раз такого же типа.


 
Thaddy   (2005-06-08 22:52) [6]

I did understand ;)
I will make an example of what you mean. It may be usefull for others too.


 
Leonid   (2005-06-09 10:56) [7]

Да, я был бы очень благодарен если бы Вы привели код.


 
Dimaxx ©   (2005-06-11 19:42) [8]

А вы замечали, что в WinRAR окно с индикатором процесса ВСЕГДА неактивно! Даже если по ТАБ переключаться между кнопками. Это тоже как-то реализовано. Ведь WinRAR написан на с-билдере. Если такой изврат возможен, то почему невозможно сделать окно на главном окне и чтобы они оба были "в фокусе", то есть заголовки окон были одинаковыми.


 
Leonid   (2005-06-11 20:49) [9]

Наверное возможно, но как?
Да, кстати, в WinRar"e окно с индикатором процесса дочернее окно.
Вот если бы сделать так, чтобы плавающая панель не была дочерней и была бы ВСЕГДА неактивной, то можно было сделать её BorderStyle:= bsSingle и шапку рисовать вручную, синем цветом, как будто она активна.


 
SPeller ©   (2005-06-12 11:12) [10]

А если поколдовать с WM_NCACTIVATE?



Страницы: 1 вся ветка

Текущий архив: 2006.02.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.071 c
15-1137510339
oldman
2006-01-17 18:05
2006.02.12
Да здравствует английский язык, самый английский в мире!!! :)


6-1129105959
Дмитрий_05
2005-10-12 12:32
2006.02.12
Прервать выполнение функции RasDial


2-1138184193
Der Nechk@SSOFF
2006-01-25 13:16
2006.02.12
свой тип файла


15-1137908295
Skorpion-555
2006-01-22 08:38
2006.02.12
Помогите


4-1132937339
dnkbu
2005-11-25 19:48
2006.02.12
Winlogon Notify