我正在为一个非常重要的项目开发游戏,我需要在我的表单中使用一些按钮。顺便说一句,这些按钮必须是圆形的。我的意思是:
图片展示了我在寻找什么。我在互联网上找到了这个程序,人们说它运作得很好:
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;
我现在正在使用Lazarus 1.2.4。顺便说一句,当我要编译时,我有一个错误Identifier not found "HRGN"
。
我认为我必须在uses
中包含一个库,但我没有找到任何内容。有什么帮助吗?
答案 0 :(得分:2)
快速检查源代码可以发现HRGN
中定义了LCLType.pp
。
将LCLType
添加到相关单元,然后编译代码。