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;