{$R *.dfm}
const
//An array of points of the star region
RgnPoints:array[l..10]of TPoint=
((X:203;Y:22),(X:157;Y:168),(X:3;Y:168),
(X:128;Y:257),(X:81;Y:402),(X:203;Y:334),
(X:325;Y:422),(X:257;Y:257),(X:402;Y:168),
(X:249;Y:168));
LinePoints:array[1..11]of TPoint=
((X:199;Y:0),(X:154;Y:146),(X:2;Y:146),
(X:127;Y:235),(X:79;Y:377),(X:198;Y:308),
(X:320;Y:396),(X:272;Y:234),(X:396;Y:146),
(X:244;Y:146),(X:199;Y:0));
procedure TForm1.FormCreate(Sender: TObject);
var
Rgn:HRGN;
begin
SetWindosPos(Form1.Handle,HWND_TOPMOST,Form1.Left,Form1.Top,Form1.Width,Form1.Height,0);
//使窗体始终保持在最前
Rgn:=CreatePolygonRgn(RgnPoints,High(RgnPoints),ALTERNATE);
//创建一个多边形的区域
SetWindowRgn(Handle,Rgn,True);//绘制多边形窗体
form1.color:=rgb(spinedit1.value,spinedit2.value,spinedit3.value);
//设置窗体初始背景颜色
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.Pen.Width:=1;//设定画笔大小
Canvas.polyline(LinePoints);//绘制多边形轮廓线
end;
procedure WmNCHiTTest(var Msg:TWMNCHitTest);
begin
DefaultHandler(Msg);//设定WindowAPi函数的消息
if Msg.Result=HTCLIENT then
Msg.Result:=HTCAPTION;//处理Windows消息
end;
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
form1.color:=rgb(spinedit1.value,spinedit2.value,spinedit3.value);//改变窗体背景颜色
end;
procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
form1.color:=rgb(spinedit1.value,spinedit2.value,spinedit3.value);//改变窗体背景颜色
end;
procedure TForm1.SpinEdit3Change(Sender: TObject);
begin
form1.color:=rgb(spinedit1.value,spinedit2.value,spinedit3.value);//改变窗体背景颜色
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
SetWindowPos(Form1.Handle,HWND_NOTOPMOST,Form1.Left,Form1.Top,Form1.Width,Form1.Heitht,0);
//恢复窗体正常位置和显示属性
form1.close;//关闭窗体
end;