Данный код позволяет создать окно без неклиентской области, но с толстым бордюром:
unit MainFrm;
interfaceuses
SysUtils, Windows, Messages, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls;
type
TMainForm = class(TForm)
btnClose: TButton;
procedure btnCloseClick(Sender: TObject);
private{ Private declarations }protected// Capture the WM_NCHITTEST message to enable moving the form.procedure WMNCHitTest(varmessage: TWMNCHitTest); message WM_NCHITTEST;
public{ Public declarations }procedure CreateParams(var Params: TCreateParams); override;
end;
var
MainForm: TMainForm;
implementation{$R *.DFM}procedure TMainForm.WMNCHitTest(varmessage: TWMNCHitTest);
begininherited;
message.Result := HTCAPTION;
end;
procedure TMainForm.CreateParams(var Params: TCreateParams);
begininherited CreateParams(Params);
Params.Style := WS_THICKFRAME or WS_POPUP or WS_BORDER;
end;
procedure TMainForm.btnCloseClick(Sender: TObject);
begin
Close;
end;
end.
Код, который вы предоставили, - это для custom формы в Delphi, которая позволяет перемещать окно, захватывая сообщение WM_ NCHITTEST и установкой результата в HTCAPTION. Он также устанавливает стиль формы с толстым рамом, всплывающим окном и рамкой.
Чтобы изменить параметры формы при ее создании, вы можете переопределить метод CreateParams в вашей custom форме. В этом коде метод CreateParams переопределяется следующим образом:
В этом примере стиль формы устанавливается в WS_THICKFRAME (толстая рамка), WS_POPUP (всплывающее окно) и WS_BORDER (рамка). Вы можете изменить эти значения, как вам нужно.
Однако, если вы хотите изменить другие параметры, такие как ширина или высота формы, вам нужно переопределить другой метод. Например, чтобы установить начальную ширину и высоту формы, вы могли бы переопределить метод Create:
procedureTMainForm.Create(Owner:TComponent);begininheritedCreate(Owner);Width:=400;// Установка ширины формыHeight:=300;// Установка высоты формыend;
В этом примере метод Create переопределяется для установки начальной ширины и высоты формы. Вы можете изменить эти значения, как вам нужно.
Обратите внимание, что вам может потребоваться調грать код в зависимости от того, как вы хотите изменить параметры формы. Если у вас есть вопросы о том, какой метод использовать или как его реализовать, не стесняйтесь спрашивать!
Данное описание статьи описывает способ переопределения параметров формы в Delphi, позволяя создать окно с толстым бордюром без неклиентской области.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.