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

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

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

Ответить
nikita_b
незнакомец
Сообщения: 4
Зарегистрирован: 01.11.2011 22:18:27

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

Сообщение nikita_b »

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

----

И еще, можно ли задавать цвет компонента TToggleBox, как для TButton?
Аватара пользователя
Nik
энтузиаст
Сообщения: 573
Зарегистрирован: 03.02.2006 23:08:09
Откуда: Киров
Контактная информация:

Сообщение Nik »

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

PS. Для Delphi можно легко нагуглить пример кода. Думаю, в Lazarus он должен заработать (даже без изменений, наверное).
Аватара пользователя
Little_Roo
энтузиаст
Сообщения: 639
Зарегистрирован: 27.02.2009 18:56:36
Откуда: Санкт-Петербург

Сообщение Little_Roo »

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


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

Сообщение nikita_b »

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

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

Для Delphi был компонент FormMagnet - может попытаться его портировать?
*Посмотрел*
Он платный к сожалению.
gNEV
новенький
Сообщения: 26
Зарегистрирован: 23.07.2010 14:20:06
Откуда: Санкт-Петербург

Сообщение gNEV »

А если посмотреть в сторону редактора привязок?
Ответить