Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Создать растягиваемую без бордюра форму

Delphi , Программа и Интерфейс , Размеры и Положение

Создать растягиваемую без бордюра форму


{ 
  With this code you can create none border style (BorderStyle = bsNone) 
  but sizeable windows (forms) 
  First you must set BorderStyle := bsNone of your Form in Object Browser. 
  There is your small but forced code; 
} 

type 
  TForm1 = class(TForm) 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
    procedure CreateParams(var Params: TCreateParams); override; 
  end; 

var 
  Form1: TForm1; 

implementation 

{$R *.dfm} 

procedure TForm1.CreateParams(var Params: TCreateParams); 
begin 
  inherited CreateParams(Params); 
  Params.Style := (Params.Style or WS_THICKFRAME); 
end; 


Перевод контента на русский язык:

Код Delphi создает форму, которая может быть изменена размером без каких-либо рамок вокруг нее. Стиль границы формы установлен в bsNone, что удаляет стандартные рамки формы. Однако форма все еще должна иметь способ указать свои границы, поэтому используется флаг window стиля WS_THICKFRAME для создания толстой рамки вокруг формы.

Вот разбивка того, что это код делает:

  1. Первая часть определяет класс формы (TForm1) который наследуется от стандартного Delphi TForm. Этот класс содержит одиночный метод, называемый CreateParams, который переопределяется для изменения параметров создания формы.
  2. В методе CreateParams вызывается реализация базового класса с помощью inherited, а затем стиль окна (хранящийся в переменной Params) модифицируется добавлением флага WS_THICKFRAME. Этот флаг указывает Windows на то, что нужно нарисовать толстую рамку вокруг формы.
  3. Последняя часть объявляет переменную (Form1) типа TForm1 и загружает ресурсы формы с помощью директивы $R *.dfm.

Результатом будет форма без рамок, но она все еще будет возможна для изменения размера, перетаскивая ее края или углы. Толстая рамка вокруг формы служит визуальным указанием ее границ.

Если вы хотите альтернативное решение без использования WS_THICKFRAME, вы можете использовать пользовательский режим рисования для границы формы. Этоinvolve переопределение метода Paint в вашем классе формы и рисование границы вручную с помощью графических примитивов (например, линий, прямоугольников). Однако это подход более сложен и требует больше кода, чем просто добавление флага WS_THICKFRAME.

В статье описывается способ создания растягиваемой без бордюра формы в Delphi, для чего необходимо установить BorderStyle в bsNone и добавить параметр WS_THICKFRAME к стилю окна.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Размеры и Положение ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-28 04:53:44/0.0032470226287842/0