Перейти к содержанию
Fire Monkey от А до Я
  • 0

[Windows] Как можно сделать эффект "Липкие окошки" TForm?


Nix0N

Вопрос

Каким образом осуществить прилипание формы к краю экрана ? Аналог свойства формы ScreenSnap из VCL. Может есть стандартные методы, о которых я не знаю, не хочу изобретать велосипед. Этим эффектом обладают гаджеты Windows 7. Разработал аналог гаджет-бара, не могу добиться данного эффекта...

post-127-0-88483000-1405292789_thumb.png

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
  • Администраторы

Добрый день,
 
У FireMonkey нету готового решения из коробки. Но, можно реализовать вручную так:

  • Получаем хендл окна формы: 
    uses
      FMX.Platform.Win;
    
    //......
    var
      WinHandle: TWinWindowHandle;
    begin
      WinHandle := WindowHandleToPlatform(Handle);
      // WinHandle.Wnd < -- Хендл окна
    end
    
  • Вешаем Hook на оконную процедуру, используя полученный хендл и функции установки хука: Hook Functions
  • В перекрытой нами оконной процедуре перехватываем сообщение WM_WINDOWPOSCHANGING и корректируем позицию окна, используя информацию о границе экрана и других окнах на экране.

Таким способом можно сделать прилипание не только к границе экрана, но и к другим окнам (так же как прилипают между собой окна виджетов).

Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...