Две формы для привязки друг к другу

#delphi #user-interface

#delphi #пользовательский интерфейс

Вопрос:

У меня есть вопрос относительно двух форм, привязывающих друг друга.

Например, если я перемещаю одну форму близко к другой и она находится на определенном расстоянии, то ее край привязывается к краю другой формы. После привязки я могу перемещать две формы, перемещая только одну форму. Как я могу этого добиться?

Я видел этот эффект в Skype, DVD Decrypter и в ImgBurn.

Комментарии:

1. @WarrenP Хотя и не совсем то же самое. OP, похоже, говорит о параллельных формах, а не о том, что одна соединена с другой. Я не видел стыковочных реализаций, которые выполняли бы параллельную работу.

2. Верно. Стыковка обычно означает совместное использование формы tab-host или conjoin-host (что делает JVCL JvDocking), плавающая / прикрепленная вещь (TJvFormMagnet) — это концепция, тесно связанная с стыковкой conjoin-host (такие формы расположены рядом или друг над другом), разделяют один фрейм и имеют вертикальный или горизонтальный размер.

Ответ №1:

Попробуйте использовать TJvFormMagnet компонент JVCL (библиотека визуальных компонентов JEDI).

Ответ №2:

Я использовал динамически создаваемые формы, и JvFormMagnet, похоже, у меня не работал. Вы можете попробовать файловый компонент TMagnet Pas для привязки форм друг к другу. Отличная альтернатива стыковке. Получите это здесь с демонстрацией и скомпилированным примером. Это действительно очень просто.