![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ReSize формы
Pat © (2002-02-18 02:27:00)Как можно изменить размеры формы, потянув за ее край, если BorderStyle = bsNone?
McSimm (2002-02-18 16:28:00) [1]Обрабатывая сообщение WM_NCHITTEST, проверять где находится указатель мыши. В зависимости от этого возвращать одно из значений. Вот пример:
procedure TMyFrm.WMNCHITTEST(var Message: TWMNCHITTEST);
var
Bounds: TRect;
CX, CY: Integer;
begin
Bounds := BoundsRect;
CX := 5;
CY := 5;
InflateRect(Bounds, -CX, -CY);
with Message do
begin
if XPos < Bounds.Left then
begin
if YPos > Bounds.Bottom - 8 then Result := HTBOTTOMLEFT
else if YPos < Bounds.Top + 8 then Result := HTTOPLEFT
else Result := HTLEFT
end else
if XPos > Bounds.Right then
begin
if YPos > Bounds.Bottom - 8 then Result := HTBOTTOMRIGHT
else if YPos < Bounds.Top + 8 then Result := HTTOPRIGHT
else Result := HTRIGHT
end else
if YPos < Bounds.Top then Result := HTTOP
else if YPos > Bounds.Bottom then Result := HTBOTTOM
else
if YPos < Bounds.Top + 15 then Result := HTCAPTION
end
end;