Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Как узнать, была ли перемещена форма

Delphi , Программа и Интерфейс , Размеры и Положение

Как узнать, была ли перемещена форма


...

type
  TfrmMain = class(TForm)
  private
    procedure OnMove(var Msg: TWMMove); message WM_MOVE;
end;

...

procedure TfrmMain.OnMove(var Msg: TWMMove);
begin
  inherited;
  ...
end;

...

Передать форму можно использовать свойства Left и Top, которые указывают на позицию верхнего левого угла формы на экране.

Вот пример:

procedure TfrmMain.OnMove(var Msg: TWMMove);
begin
  inherited;
  if (OldPosition.Left <> Left) or (OldPosition.Top <> Top) then
    ShowMessage('Форма была перемещена!');
end;

В этом коде OldPosition - это приватная переменная, которая хранит предыдущую позицию формы. В обработчике события OnMove, мы сравниваем текущую позицию (Left и Top) с предыдущей позицией. Если они отличаются, то это означает, что форма была перемещена, и мы выводим сообщение об этом пользователю.

Также можно использовать свойство PosChanged класса TForm, которое истинно, если позиция формы изменилась с момента последнего измерения.

procedure TfrmMain.OnMove(var Msg: TWMMove);
begin
  inherited;
  if PosChanged then
    ShowMessage('Форма была перемещена!');
end;

Эта APPROACH более компактна и эффективна, чем сравнение свойств Left и Top.

Альтернативное решение - использовать сообщение WM_MOVED, которое отправляется форме при ее перемещении или изменении размера. Вы можете обработать это сообщение в обработчике события OnMessage.

procedure TfrmMain.OnMessage(var Msg: TMessage);
begin
  if Msg.Msg = WM_MOVED then
    ShowMessage('Форма была перемещена!');
end;

Эта APPROACH позволяет обнаруживать, когда форма была перемещена, без сравнения свойств позиции.

Статья описывает способ обнаружения перемещения формы в приложении Delphi, используя обработчик события WM_MOVE и переменную TfrmMain.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Размеры и Положение ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 22:23:37/0.0047280788421631/2