Как создать круглую форму?

Здесь приведён полный пример того, как создать круглую форму.
Не забудьте создать 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

  { Private-Deklarationen}

  procedure CreateParams(var Params: TCreateParams); override;

 public

  { Public-Deklarationen}

 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

 {clear form}

 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.

Взято из http://forum.sources.ru

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...