Alex7wrt Опубликовано 27 февраля, 2016 Поделиться Опубликовано 27 февраля, 2016 Добрый день. Интересует есть ли в FMX способ отследить передвижение формы. Цитата Ссылка на комментарий
0 Alex7wrt Опубликовано 27 февраля, 2016 Автор Поделиться Опубликовано 27 февраля, 2016 (изменено) После долгого поиска все-таки нашел тему на этом же форуме )). Хотя раньше искал, но не находил. Тема: http://fire-monkey.ru/topic/1452-kak-poimat-peremeschenie-formy/ Суть решения - необходимо перекрыть виртуальный метод формы SetBounds, который выполняется каждый раз при перемещении формы procedure TCommonCustomForm.SetBounds(ALeft, ATop, AWidth, AHeight: Integer); virtual; Для этого в описании методов формы пишем type TForm1 = class(TForm) ........ procedure SetBounds(ALeft, ATop, AWidth, AHeight: integer); override; ....... end; и в теле процедуры выполняем необходимые действия procedure TForm1.SetBounds(ALeft, ATop, AWidth, AHeight: integer); begin inherited; if assigned(form2) then begin form2.Left:=ALeft; form2.top:=ATop; end; end; В данном случае - присвоение второй форме координат первой. Изменено 27 февраля, 2016 пользователем Alex7wrt Axbor и Vitaldj 2 Цитата Ссылка на комментарий
0 Sergey S Опубликовано 3 октября Поделиться Опубликовано 3 октября К сожалению, в D11.2 повторить не получилось.:( Если все правильно понимаю, то теперь при перемещении формы этот метод больше не вызывается. У меня получилось его вызвать, только напрямую через: SetBounds(10, 10, 500, 500); Даже присвоение новых значений параметрам: Left, Top, Width, Height не вызывает этот метод. Цитата Ссылка на комментарий
1 krapotkin Опубликовано 3 октября Поделиться Опубликовано 3 октября TForm1 = class(TForm) private public procedure SetBoundsF(const ALeft: Single; const ATop: Single; const AWidth: Single; const AHeight: Single); override; end; Sergey S 1 Цитата Ссылка на комментарий
0 Sergey S Опубликовано 3 октября Поделиться Опубликовано 3 октября (изменено) Все получилось, спасибо большое! Изменено 4 октября пользователем Sergey S Цитата Ссылка на комментарий
0 Sergey S Опубликовано 9 октября Поделиться Опубликовано 9 октября Под Linux, оказалось, есть особенность. Метод вызывается не в момент перемещения формы, а в момент отпускания ЛКМ после перемещения. Цитата Ссылка на комментарий
Вопрос
Alex7wrt
Добрый день.
Интересует есть ли в FMX способ отследить передвижение формы.
Ссылка на комментарий
5 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.