필자는 Delphi 시각적 컨트롤의 모서리를 둥글게 만드는 루틴을 만들었습니다.원래 클래스를 수정하지 않고 코드를 클래스에 삽입하는 방법은 무엇입니까?
지금 내가 뭘 원하는 TMemo
, TEdit
및 TPanel
같은 모든 시각적 객체가 양식 작성에 그들 모두를위한 함수를 호출하지 않고 둥글게되어 제공되도록한다.
은 어떻게 (양식 장치) 내 코드에서 이러한 클래스 각각에 대한 작성 방법의 확장, 그래서 그들이 클래스와 다른 단위의 정상적인 동작의 이름을 유지해야합니까?
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;
은 우리에게 당신이 라운드를 만드는 방법에 대한 자세한 내용을 알려주십시오. 일부 gdi 메시지 처리기 메서드를 연결해야합니다. –
완료. 프로 시저 RoundCornerOf (제어) ... – PSyLoCKe
내 질문에 무엇이 문제가 있습니까? 그것은 합법적이며 역할에 있습니다. – PSyLoCKe