Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[13.58.39.23] |
|
Сообщ.
#1
,
|
|
|
type TForm1 = class(TForm) ... private procedure HitTest(var Msg: TWMNcHitTest); message WM_NCHITTEST; ... end; ... implementation ... procedure TForm1.HitTest(var Msg: TWMNcHitTest); var X, Y: Integer; begin inherited; X := Msg.XPos - Left; Y := Msg.YPos - Top; if X <= 4 then begin if Y <= 4 then Msg.Result := HTTOPLEFT else if Y >= ClientHeight - 4 then Msg.Result := HTBOTTOMLEFT else Msg.Result := HTLEFT; end else if Y <= 4 then begin if X >= ClientWidth - 4 then Msg.Result := HTTOPRIGHT else Msg.Result := HTTOP; end else if Y >= ClientHeight - 4 then begin if X >= ClientWidth - 4 then Msg.Result := HTBOTTOMRIGHT else Msg.Result := HTBOTTOM; end else if X >= ClientWidth - 4 then Msg.Result := HTRIGHT else Msg.Result := HTCAPTION; end; ... |
Сообщ.
#2
,
|
|
|
Есть еще один способ.
type TForm1 = class(TForm) public procedure CreateParams (var Params: TCreateParams); override; end; implementation procedure TForm1.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); Params.Style := Params.Style or WS_SIZEBOX; end; end. Но тогда будет отображаться рельефная граница окна, а это не всегда нужно. |