Перейти к содержанию
Fire Monkey от А до Я
  • 0

как отловить перемещение формы по экрану, Windows


Alex7wrt

Вопрос

Рекомендуемые сообщения

  • 0

После долгого поиска все-таки нашел тему на этом же форуме )). Хотя раньше искал, но не находил.

Тема: 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;  

В данном случае - присвоение второй форме координат первой.

Изменено пользователем Alex7wrt
Ссылка на комментарий
  • 0

К сожалению, в D11.2 повторить не получилось.:(

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

SetBounds(10, 10, 500, 500);

Даже присвоение новых значений параметрам: Left, Top, Width, Height не вызывает этот метод.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...