Часто бывает необходимо, например, если программа использует скины, установить свойство формы BorderStyle = bsNone, но при этом необходимо сохранить возможность изменения размеров окна программы. Вот код для реализации этой функции:
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;
На заметку: Msg.Result := HTCAPTION можно закоментировать если не нужно, чтобы окно можно было перемещать за поверхность формы.
Коддинг: s-mike
![]() |
|
Просмотров: 673
|
0
(22.02.2010) 1. Сергей
(Xaker)
А как можно сделать чтобы не сразу изменялись границы формы а сначала появлялся будущий размер (типо бордюра) а потом по отпусканию мыши уже прорисовывалась форма..?
Ответ: Скажу честно - я незнаю. Думаю что както можно. Кстати в настройках ОС есть это, может быть за это ОС отвечает, хотя в некоторых приложениях показывается только контур.
|
Copyright © 2008-2010 Программирование на Delphi для начинающих и не только
Полнота авторских прав на все материалы, опубликованные на сервере DelphiDevelop.ru принадлежит их авторам
Перепечатка материалов разрешается с указанием авторства и гиперссылки на первоисточник информации
Хостинг от uCoz