Как создать круглую форму? |
Previous Top Next |
Здесь приведён полный пример того, как создать круглую форму.
Не забудьте создать TButton, чтобы окно можно было закрыть.
Code: |
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. |
©Drkb::00466
Взято из http://forum.sources.ru