Часто бывает необходимо, например, если программа использует скины,
установить свойство формы BorderStyle = bsNone, но при этом необходимо
сохранить возможность изменения размеров окна программы. Вот код для
реализации этой функции:
procedure TForm1.HitTest(var Msg: TWMNcHitTest); var X, Y: Integer; begin inherited;
// получаем координаты мыши относительно формы X := Msg.XPos - Left; Y := Msg.YPos - Top; if X <= 5 then// если мышь у левого края формы begin if Y <= 5 then// если мышь у верхнего края формы Msg.Result := HTTOPLEFT else if Y >= ClientHeight - 5 then Msg.Result := HTBOTTOMLEFT // мышь у левого нижнего края else Msg.Result := HTLEFT; end else begin if Y <= 5 then begin if X >= ClientWidth - 5 then Msg.Result := HTTOPRIGHT // у правого верхнего края else Msg.Result := HTTOP; // у верхнего края end else begin if Y >= ClientHeight - 5 then begin if X >= ClientWidth - 5 then Msg.Result := HTBOTTOMRIGHT // у правого нижнего края else Msg.Result := HTBOTTOM; // у нижнего края end else if X >= ClientWidth - 5 then Msg.Result := HTRIGHT // у правого края else Msg.Result := HTCAPTION; // внутри формы end; end;
end;
На заметку: Msg.Result := HTCAPTION можно закоментировать если не нужно, чтобы окно можно было перемещать за поверхность формы.
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
-------------- Комментарий --------------