其他语言

位置:IT落伍者 >> 其他语言 >> 浏览文章

巧妙用Delphi设计多边形窗体


发布日期:2022年05月13日
 
巧妙用Delphi设计多边形窗体
本文将介绍如何利用Windows提供的制作界面函数制作一个多边形窗体

制作多边形窗体的关键在于设定多边形的区域并根据这个指定的区域改变窗体的形状Windows的CreatePolygonRgn和SetWindowRgn函数可以解决这两个难点

利用以下代码即可将窗体设置为一个五边形

procedure TFormFormCreate(Sender: TObject);

var

pt: array [] of TPoint;

m_rgn: HRGN;

begin

pt[]x:=selfWidth div ;

pt[]y:=;

pt[]x:=;

pt[]y:=selfHeight div ;

pt[]x:=selfWidth div ;

pt[]y:=selfHeight;

pt[]x:=selfWidth;

pt[]y:=selfHeight div ;

pt[]x:=selfWidth;

pt[]y:=;

m_rgn:=CreatePolygonRgn(ptWINDING);

SetWindowRgn(selfHandlem_rgnTRUE);

end;

该程序首先定义了一个TPoint类型的数组pt在其中存储了一个五边形的数据然后使用CreatePolygonRgn函数将这个五边形转换成为一个区域最后使用SetWindowRgn函数根据五边形指定的区域改变窗体的形状

程序代码如下

unit Unit;

interface

uses

Windows Messages SysUtils Variants Classes Graphics Controls Forms

Dialogs;

type

TForm = class(TForm)

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form: TForm;

implementation

{$R *dfm}

procedure TFormFormCreate(Sender: TObject);

var

pt: array [] of TPoint;

m_rgn: HRGN;

begin

pt[]x:=selfWidth div ;

pt[]y:=;

pt[]x:=;

pt[]y:=selfHeight div ;

pt[]x:=selfWidth div ;

pt[]y:=selfHeight;

pt[]x:=selfWidth;

pt[]y:=selfHeight div ;

pt[]x:=selfWidth;

pt[]y:=;

m_rgn:=CreatePolygonRgn(ptWINDING);

SetWindowRgn(selfHandlem_rgnTRUE);

end;

end

保存文件然后按F键运行程序结果如图所示

图 程序运行结果

制作多边形窗体的方法并不止本实例所介绍的一种后面还会涉及到如何制作更为复杂的窗体希望读者多加体会制作出更加有个性的窗体               

上一篇:Delphi中用TDD:一个简单的实现

下一篇:Delphi设计形象的动态三维饼图