Плавающее окно
Хочю создать плавающее окно для программы (кто не представляет это типа окошка у FlashGet, Dowloand master). Никто не подскажет?
По-моему это обычная форма без заголовка и с эффектом прозрачности. В 6-ом билделе и на виндах W2K/XP всё это сделать должно быть довольно легко.
По-моему это обычная форма без заголовка и с эффектом прозрачности. В 6-ом билделе и на виндах W2K/XP всё это сделать должно быть довольно легко.
Плюс форму нужно сделать "Always in top".
Плюс форму нужно сделать "Always in top".
Знаю только "Always on top" :-)))
Знаю только "Always on top" :-)))
А чтобы заголовок формы не был виден на панели задач, а чтобы находилась поверх других окон.
И что за "Always on top" где это свойство???
А чтобы заголовок формы не был виден на панели задач, а чтобы находилась поверх других окон.
И что за "Always on top" где это свойство???
Чтобы прятать с панели задач, смотри функцию WinAPI ShowWindow(). Для того чтобы держать всегда поверх всех окон есть свойство FormStyle. Устанавливаешь его в fsStayOnTop.
Чтобы прятать с панели задач, смотри функцию WinAPI ShowWindow()...
стиль bsToolWindow.
стиль bsToolWindow.
А зачем bsToolWindow ? Он же просто делает заголовок узким. У плавающего окна флешгета вообще нет заговка. Так что стиль надо в bsNone ставить.
Если на компе в св-вах панели задач будет установлено Поверх всех окон, то при перетаскивании окна на панель оно будет перекрываться самой панелью
Ничего подобного. Если панель не делать активной перекрытия не произойдёт.
Ничего подобного. Если панель не делать активной перекрытия не произойдёт.
Я нашёл функцию Win API, но он выдаёт ошибку
function ShowWindow(Wnd: HWnd; CmdShow: Integer);
(скрытие)
Почему не пашет?
Я нашёл функцию Win API, но он выдаёт ошибку
function ShowWindow(Wnd: HWnd; CmdShow: Integer);
(скрытие)
Почему не пашет?
Что, нет спецов по Win API
Что, нет спецов по Win API
Спецы спят все уже ибо наработались за день.
function ShowWindow(Wnd: HWnd; CmdShow: Integer);
(скрытие)
Почему не пашет?
Это у тебя надо спросить. Ты думал, что определение функции это как заклинание? Нашел, прочитал и заработало? Если ты так думал, то ты ошибался :)
Вообще:
Ничего подобного. Если панель не делать активной перекрытия не произойдёт.
А ты сам попробуй. Создай любую форму, а в св-вах панели задач установи Отображать поверх всех окон. Если окно при перетаскивании окажется СВЕРХУ панели, то с меня пиво:)
А ты сам попробуй. Создай любую форму, а в св-вах панели задач установи Отображать поверх всех окон. Если окно при перетаскивании окажется СВЕРХУ панели, то с меня пиво:)
С тебя квас, т.к. спиртное я не пью. У данной формы FromStyle=fsStayOnTop. И больше ничего!
С тебя квас, т.к. спиртное я не пью. У данной формы FromStyle=fsStayOnTop. И больше ничего!
Прошу прощения. Кстати, плиз, посмотри мою тему Русские буквы, может сможешь помочь
Ждём кваса и пива из Геленджика ;-)))))))
А мне - не далеко, можно на выходные на море съездить за квасом :)
А мне - не далеко, можно на выходные на море съездить за квасом :)
С квасом тут....
А у меня ещё один вопрос, вот я сделал это плавающее окощко, а как сделать, что-бы оно было прозрачным (Dowload Master)?
С квасом тут....
А у меня ещё один вопрос, вот я сделал это плавающее окощко, а как сделать, что-бы оно было прозрачным (Dowload Master)?
Воть:
long ExtStyle = GetWindowLong(Handle, GWL_EXSTYLE);
SetWindowLong(Handle, GWL_EXSTYLE, ExtStyle | WS_EX_LAYERED);
SetLayeredWindowAttributes(Handle, 0 , (255 * Transparency) / 100,
LWA_ALPHA);
А у меня ещё один вопрос, вот я сделал это плавающее окощко, а как сделать, что-бы оно было прозрачным (Dowload Master)?
В последних версиях VCL у форм есть свойство AlphaBlend, отвечающее за прозрачность.