На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: jack128, Rouse_, Krid
  
    > Изменение размеров окна с BorderStyle := bsNone
      ExpandedWrap disabled
        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;
        ...
        Есть еще один способ.
        ExpandedWrap disabled
          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.

        Но тогда будет отображаться рельефная граница окна, а это не всегда нужно.
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0166 ]   [ 16 queries used ]   [ Generated: 27.04.24, 07:00 GMT ]