Можно ли использовать TSizeGrip для перемещения и изменения размеров компонентов во время выполнения (в FireMonkey)?

Предшественник FireMonkey рекламировал, что его можно использовать для создания программ САПР и ГИС. Я изучал FireMonkey и думал о том, как создать простую программу САПР. Основная функция заключается в перемещении фигур на экране с помощью мыши. FireMonkey включает компонент TSizeGrip, который, как я подозреваю, может быть применим к перемещению фигур и предоставлению узлов в углах и краях фигуры, на которые пользователь может щелкнуть. Однако документация по TSizeGrip еще не завершена.

Можно ли использовать TSizeGrip, чтобы позволить конечному пользователю перемещать фигуры FireMonkey? Если да, то как?


person Greg Bishop    schedule 03.10.2011    source источник


Ответы (2)


No.

TSizeGrip предоставляется специально для того, чтобы действовать как «дескриптор захвата» для изменения размера формы, а не для произвольных элементов управления или контейнеров FireMonkey.

В этом легко убедиться, создав новое приложение FireMonkey HD. Поместите TPanel на форму, а затем поместите TSizeGrip на эту панель.

Запустите приложение, и вы обнаружите, что когда вы наводите указатель мыши и нажимаете на ручку размера и перетаскиваете, изменяется размер формы, а не панели. Элемент управления захватом размера обычно закрепляется в правом нижнем углу формы.

Если вам интересно, зачем вам нужен элемент управления с таким явно ограниченным использованием, когда размеры изменяемых форм можно просто изменить с помощью их границы, ответ заключается в том, что иногда может быть полезно изменить размер формы без полного стиля перетаскивания границы. например модальные диалоговые окна.

person Deltics    schedule 04.10.2011
comment
Спасибо за объяснение, для чего нужен TSizeGrip. - person Greg Bishop; 04.10.2011

Нет - за одним исключением.

Если вы создаете новый компонент, в котором используете TPanel и TSizeGrip, TSizeGrip будет управлять размером TPanel, не размер TForm.

person Wojtek    schedule 10.06.2017