'Липкие' формы

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

'Липкие' формы

Сообщение nikita_b » 01.11.2011 22:23:12

Здравствуйте, допустим я создал две формы. Они никак не связаны между собой. Можно ли, чтобы, когда одну форму я одну форму пододвигаю к другой, они слеплялись? Такой эффект есть например во многих музыкальных проигрователях.
Он есть и в самом Лазарусе, правда тут формы слипаются при нажатии кнопки. Такой вариант меня тоже устроит благо его можно доработать.

----

И еще, можно ли задавать цвет компонента TToggleBox, как для TButton?
nikita_b
незнакомец
 
Сообщения: 4
Зарегистрирован: 01.11.2011 22:18:27

Re: 'Липкие' формы

Сообщение Nik » 02.11.2011 10:00:02

Там довольно простой алгоритм. На событии Form.OnMouseDown (ну, или на другом компоненте, если вы хотите таскать за него) включаем режим "перетаскивания". Далее на Form.OnMouseMove следим за координатами мыши и формы. Если координаты формы ~= координатам места слипания делаем "координаты формы:= координатам места слипания". С расстыковкой немного сложнее, но суть та же.

PS. Для Delphi можно легко нагуглить пример кода. Думаю, в Lazarus он должен заработать (даже без изменений, наверное).
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: 'Липкие' формы

Сообщение Little_Roo » 02.11.2011 15:57:02

nikita_b писал(а): Можно ли, чтобы, когда одну форму я одну форму пододвигаю к другой, они слеплялись?


Для Delphi был компонент FormMagnet - может попытаться его портировать?
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 639
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: 'Липкие' формы

Сообщение nikita_b » 02.11.2011 23:09:41

Nik писал(а):Там довольно простой алгоритм. На событии Form.OnMouseDown (ну, или на другом компоненте, если вы хотите таскать за него) включаем режим "перетаскивания". Далее на Form.OnMouseMove следим за координатами мыши и формы. Если координаты формы ~= координатам места слипания делаем "координаты формы:= координатам места слипания". С расстыковкой немного сложнее, но суть та же.

Это понятно. Я просто хотел вариант для 'ленивых', т.к в delphi у формы был встроенный параметр, который позволял такое делать(По крайней мере об этом пишут в интернете). И функция не критична возится не особо хочется.

Для Delphi был компонент FormMagnet - может попытаться его портировать?
*Посмотрел*
Он платный к сожалению.
nikita_b
незнакомец
 
Сообщения: 4
Зарегистрирован: 01.11.2011 22:18:27

Re: 'Липкие' формы

Сообщение gNEV » 03.11.2011 12:25:04

А если посмотреть в сторону редактора привязок?
gNEV
новенький
 
Сообщения: 26
Зарегистрирован: 23.07.2010 14:20:06
Откуда: Санкт-Петербург


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20

Рейтинг@Mail.ru