델파이에서 inherited가 상위 레벨의 클래스의 함수를 부르는 건가요?
님이 조언대로 해봐도 소용이 없네요
컴포넌트의 이벤트 핸들러를 그대로 쓰면서 제가 하고 싶은 것들을 하고 싶은데요
OnCustomDrawSubItem이벤트 핸들러가 오버라이드 된듯..
컴포넌트에서 아무 것도 표시가 안되네요
civilian 님이 쓰신 글 :
: 해당 함수가 virtual로 선언된 것이라면
:
: override 해서 쓰시면 됩니다.
:
:
: procedure TXXX.XXXXXXXXX()
: begin
: inherited;
:
: // 내가 하고 싶은 것들
: end;
:
:
: 김정엽 님이 쓰신 글 :
: : 컴포넌트의 OnCustomDrawSubItem이란 이벤트를 작성하게 되면
: :
: : 이 이벤트가 일어날 때 컴포넌트 내부의 함수가 호출이 되지 않습니다.
: :
: : procedure TNiceSideBar.DrawItem(ACanvas: TCanvas; Rc: TRect; Str: string;
: : States: TSideBarStates; ImageIndex: Integer); <--- 바로 이 함수...
: :
: :
: : 그러니까 제가 이벤트 핸들러을 작성할려면 위 함수의 기능까지 코딩하고 제가 특별히 처리해 주어야
: :
: : 할 부분까지도 코딩해야 하는데요...
: :
: : 제가 처리해야 될 내용만 처리 하고 나머지는 컴포넌트가 원래 동작하는데로 나두고 싶은데
: :
: : 어떤 방법이 없을 까요?
: :
: : 즉 이렇게 OnCustomDrawSubItem의 이벤트 핸들러를 작성하고..
: :
: : procedure TFormDigitalPA.NSBarCustomDrawSubItem(Sender: TObject;
: : ACanvas: TCanvas; Rc: TRect; Str: string; States: TSideBarStates);
: : begin
: : // 기존의 컴포넌트의 동작...
: : // 제가 처리하고 싶은 동작...
: : end;
: :
: : 이렇게 구성하고 싶다 이겁니다. Sender를 형변환하여 DrawItem함수를 호출할려고도 했지만,
: :
: : 이함수가 Protect로 선언되어 있어서 상속을 받거나 내부적으로 호출할수 밖에 없더군요..
: :
: : 제가 델파이를 시작한지 얼마 안된는 초보라 되도록이면 자세한 설명 부탁드립니다.
|