100分求助,用那种控件可以做到无规则窗体 我想做一个像手形状摇控器形状的FORM窗体,不知道用什么控件? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 去2ccc找界面控件!其实完全不用控件,自己写好了! 给你一个例子:http://www.keess.net/unnormal.rar如果你想要这样的效果就给我发消息吧,我给你代码 原理大概如此interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);var//窗体句柄, hr:thandle; //窗体的直径,取原来窗体中的高或宽,看那个小 small:integer;begin if width>=height then small:=height else small:=width; //以下hr是一个窗体句柄,用APi函数把形状赋该句柄 //此外还有CreatePolygonRgn //CreateRectRgn,矩形;CreateRoundRgn,圆角矩形句柄 hr:=createellipticrgn(0,0,small,small); //以下函数是API函数,用来设置窗体的形状 setwindowrgn(handle,hr,true); end;end. setwindowrgn,就可以搞定,为什么要做成控件? setwindowrgn,就可以搞定,为什么要做成控件? CoolSkin,好象是这个名字,可以下载到。 自已用api来写吧,有点麻烦,一、实现第一步:定义区域边界。 在这里将调用三个WinAPI,这三个函数是: CreateEllipticRgn()功能是生成椭圆形区域; CreateRoundRectRgn()功能是生成圆角矩形区域; CreatePolygonRgn()功能是生成多边形区域,Windows要确保使其顶点自动相连形成一封闭的区域。 实现第二步:将返回的HRGN类型的区域值被设置窗口区域函数调用。 设置窗口区域函数: 函数原形:int SetWindowRgn(HWND hWnd, HRGN hRgn, BOOL bRedraw); 参数说明: hWnd:指向所操作的窗口的句柄; hRgn:所给区域句柄; bRedraw:是否显示重画窗口的标志。 在每一个函数的最后都需要调用SetWindowRgn函数,然后由Windows操作系统实现区域的各种形状的设置并显示。 关于RTTI,能给个最简单的例程么? 我想要弹出一个ADO参数设置的对话框,如何实视? Delphi中有哈希表吗? 又是一个很简单的问题,只要能解决,马上结贴 ListView怎么用?subitem怎么才能让它显示出来? 怎样用最快的方法检测数据库是否连通? 看一个函数的声明。有一个参数到底是什么类型? 一个dll的注册问题 在delphi中如何实现以下功能: 求救!高手请进!! 大侠们!帮我看看这段代码哪里错了?在线急等。。。 String 和 AnsiString 问题请教
其实完全不用控件,自己写好了!
interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
var
//窗体句柄,
hr:thandle;
//窗体的直径,取原来窗体中的高或宽,看那个小
small:integer;
begin
if width>=height then
small:=height
else
small:=width;
//以下hr是一个窗体句柄,用APi函数把形状赋该句柄
//此外还有CreatePolygonRgn
//CreateRectRgn,矩形;CreateRoundRgn,圆角矩形句柄
hr:=createellipticrgn(0,0,small,small);
//以下函数是API函数,用来设置窗体的形状
setwindowrgn(handle,hr,true);
end;end.