내가 개발하도록 지시 받았던 하나의 이전 프로젝트에는 TScrollBox 유형의 필드가 있습니다.TScrollBox에 추가 된 도우미 메서드가 작동하지 않습니다.
탐색 단추의 이벤트를 처리하려면 클래스에 WM_GETDLGCODE 메시지 처리기가 있어야합니다. 그래서 새로운 클래스 생성 :
TScrollBoxArrowBtn = class(TScrollBox)
protected
procedure WMGetDlgCode(var Message: TWMGetDlgCode); message WM_GETDLGCODE;
end;
구현
procedure TScrollBoxArrowBtn.WMGetDlgCode(var Message: TWMGetDlgCode);
begin
Message.Result := DLGC_WANTARROWS;
end;
을 그리고 TScrollBoxArrowBtn와 TScrollBox 유형을 대체했다.
FScroll : TScrollBoxArrowBtn;
구성 요소가 화살표 버튼을 눌러 응답하기 시작했습니다. 그러나 copy, delete, SelectAll 메소드는 작동을 멈췄습니다. 이전 개발자가이 같은 검증 방법에 추가하기 때문에 무슨 일이 있었 :
"VariableName".ClassType = TScrollBox
나는 검증을 위해 그들을 대체 : 편집의 방법 후
"VariableName" is TScrollBox
이 작동하기 시작했다. 그러나 그러한 테스트가 프로젝트의 다른 곳에 적용되지 않을지 확신하지 못합니다. 그래서
FScroll : TScrollBox;
을 떠나기로 결심 그리고 TScrollBoxArrowBtn 헬퍼 클래스 제작 :
TScrollBoxArrowBtn = class helper for TScrollBox
protected
procedure WMGetDlgCode(var Message: TWMGetDlgCode); message WM_GETDLGCODE;
end;
불행하게도이 방법이 작동하지 않습니다.
"VariableName".ClassType = TScrollBox
과 같은 인증은 완벽하게 작동하기 시작했지만 프로젝트는 이벤트 화살표 버튼에 응답하지 않습니다. 나는 무엇을 잘못 했는가?
내 버전의 IDE가 도우미 메서드를 지원한다고 확신합니다.