0
我正在开发一个非常重要的项目的游戏,我需要一些按钮在我的窗体中。顺便提一提,这些按钮必须是圆形的。我的意思是:德尔福圆角边框按钮
图片显示的是我期待的。我已经在互联网上发现了这个过程,人们说,它的工作原理相当不错:
procedure DrawRounded(Control: TWinControl) ;
var
R: TRect;
Rgn: HRGN;
begin
with Control do
begin
R := ClientRect;
rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 20, 20) ;
Perform(EM_GETRECT, 0, lParam(@r)) ;
InflateRect(r, - 4, - 4) ;
Perform(EM_SETRECTNP, 0, lParam(@r)) ;
SetWindowRgn(Handle, rgn, True) ;
Invalidate;
end;
end;
所以我写了这个代码:
procedure TForm1.FormCreate(Sender: TObject);
begin
//code for other stuff
DrawRounded(Button1);
end;
我使用的拉撒路1.2.4的时刻。顺便说一句,当我要编译时,我有一个错误,说Identifier not found "HRGN"
。
我以为我必须在uses
中包含一个库,但我没有找到任何东西。任何帮助?
它在['lcltype.pp']中定义(http://lazarus-ccr.sourceforge.net/docs/lcl/lcltype/hrgn.html)。 – TLama
为什么downvotes?至少评论而不是低调,这些日子似乎太频繁了。在这里,我们并不像大多数人那样有天赋,所以不管这个问题有多么基本或微不足道,而不仅仅是给出负面的降价,至少解释了什么是错的。我没有看到这个问题没有问题,但我想这可能解释为什么我也得到大量的downvotes ... –