我创建了一个例程来使 Delphi 可视控件的角变圆。
现在我要做的是确保每个视觉对象都像TMemo
,TEdit
并且TPanel
是圆的,而不必在创建表单时为每个人调用函数。
如何从我的代码(表单单元)中为这些类中的每一个扩展 create 方法,以便它们保留类的名称和其他单元上的正常行为?
procedure RoundCornersOf(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;