Карта сайтаСсылкиКонтакты

Создание круглой формы

PDF Печать
Статьи

Как можно создать круглую форму прозрачную или сплошную без границ и заголовка.

Вот пример как сделать круглую форму. Не забудьте создать TButton, чтобы затем закрыть окно.


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, 
  Forms, Dialogs, ExtCtrls, Buttons, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    procedure CreateParams(var Params: TCreateParams); override;
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

{ TForm1 }

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);

  {Удаляем заголовок и границу}
  Params.Style := Params.Style or WS_POPUP xor WS_DLGFRAME;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  FormRgn: hRgn;
begin
  {Очищаем форму}
  Form1.Brush.Style := bsSolid; //bsclear;
  {Делаем форму круглой}
  GetWindowRgn(Form1.Handle, FormRgn);

  { Удаляем старый объект }
  DeleteObject(FormRgn);
  { Делаем форму прямоугольной }
  Form1.Height := 500;
  Form1.Width := Form1.Height;
  { Создаем круглую форму }
  FormRgn := CreateRoundRectRgn(1, 1, Form1.Width - 1,
             Form1.height - 1, Form1.width, Form1.height);

  { Установить новое круглое окно }
  SetWindowRgn(Form1.Handle, FormRgn, TRUE);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form1.close;
end;

end.

 

Добавить комментарий


Защитный код
Обновить