Изменение размеров формы при BorderStyle=bsNone - Delphi
private
procedure HitTest(
var Msg: TWMNcHitTest);
message WM_NCHITTEST;
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;
Возврат к списку