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 ... –