C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[66656] 빌더님 시간되시면 한번 봐주세요. 재질문 입니다 ㅠ
Neit [starsneak] 905 읽음    2012-03-16 12:23
빌더님 시간 내주셔서 고맙습니다.

RTTI 를 써서 메소드를 후킹하는 방법은 아직 선행지식이 없어서 시도를 못해보고

처음 말씀하신 방법대로 해보려고 하는데요. use rumtime packege 를 check 해제 하고 ....

빌드를 해보니까,

void __fastcall Vcl::Grids::TCustomGrid::WMHScroll(TWMScroll &Msg)

해당 라인에서

[C++ Error] MainDlg.cpp(417): E2090 Qualifier 'Vcl' is not a class or namespace name

위와같은 에러가 나는데요.

Grid uint 에 속하는 TCustomGrid.. 이런건 알겠는데..

Vcl:: 에서 에러 발생하는것에 대해서 잘 모르겠습니다..

제가 너무 기본을 모르는건 같아요..  구글링을 해봐도, 제가 뭘 잘못 하고 있는건지 모르겠는데요.

혹시 제가 놓치고 있는것이 있는지요 ?

바쁘신데 죄송합니다.


빌더(TWx) 님이 쓰신 글 :
: Neit 님이 쓰신 글 :
: : 질문 그대로 입니다..
: :
: : column 의 너비가 넓어서 한 화면을 넘어가는경우..
: :
: : column 뒤쪽의 내용도 보고 싶은데 방법이 없네요 ? ;;;
: :
: : 엑셀도 그렇고, 횡스크롤을 하면 무조건 다음 column 으로 넘어가는데..
: :
: : 이런 동작을 하는 grid componet 를 아시거나
: :
: : 기본 component 를 이용해서 구현가능한 좋은 아이디어 있으신 분들께 조언을 구하고자 합니다.
:
:
:
:
:
: 답변:
:
:
: 그런 Grid Component가 있는지는 잘 모르겠지만, VCL FrameWork에서 제공되고 있는 기본 클래스를 이용
: 하더라도 구현은 가능합니다. WMHScroll... 메세지 함수가 TCustomGrid 클래스에서 구현되어 있지만 private로
: 정의되어 있기때문에 TStringGrid에선 사용할 수 없죠. 그러나 다음과 같은 방법을 이용해서 기존 VCL Framework
: 소스코드 수정 없이 대체가 가능 합니다.
:
:
: void __fastcall Vcl::Grids::TCustomGrid::WMHScroll(TWMScroll &Msg)
: {
: 	String s;
: 
: 	switch(Msg.ScrollCode) {
: 	case SB_LINEUP:
: 		s.printf(L"Code = SB_LINEUP, Pos = %d", Msg.Pos);
: 		break;
: 	case SB_LINEDOWN:
: 		s.printf(L"Code = SB_LINEDOWN, Pos = %d", Msg.Pos);
: 		break;
: 	case SB_PAGEUP:
: 		s.printf(L"Code = SB_PAGEUP, Pos = %d", Msg.Pos);
: 		break;
: 	case SB_PAGEDOWN:
: 		s.printf(L"Code = SB_PAGEDOWN, Pos = %d", Msg.Pos);
: 		break;
: 	case SB_THUMBPOSITION:
: 		s.printf(L"Code = SB_THUMBPOSITION, Pos = %d", Msg.Pos);
: 		break;
: 	case SB_THUMBTRACK:
: 		s.printf(L"Code = SB_THUMBTRACK, Pos = %d", Msg.Pos);
: 		break;
: 	default:
: 		s.printf(L"Code = Unknown, Pos = %d", Msg.Pos);
: 	}
: 
: 	Form1->Caption = s;
: }
: 

:
: 런타임 패키지를 사용하지 않도록 프로젝트 옵션을 설정하고 컴파일 하면 위에서 정의한 코드가 TCustomGrid
: 클래스에서 정의하고 있는 WMHScroll()을 대체 해버리게 됩니다. 나머지 로직은 TCustomGrid 소스를 참조해서
: 구현하면 되겠죠.
:
: static link 로 컴파일 할땐.. 위와 같은 방법을 이용하면 되고,  런타임패키지를 이용할 때는 RTTI를 이용해서
: 메소드를 후킹해주면 됩니다.
:
: ...

+ -

관련 글 리스트
66647 Grid 중 횡scroll시 column 단위가 아니라 listview 처럼 pixels 단위로 scroll 되는 component 가 있나요 Neit 1248 2012/03/15
66649     Re:Grid 중 횡scroll시 column 단위가 아니라 listview 처럼 pixels 단위로 scroll 되는 component 가 있 빌더(TWx) 1335 2012/03/16
66656         빌더님 시간되시면 한번 봐주세요. 재질문 입니다 ㅠ Neit 905 2012/03/16
66665             Re:빌더님 시간되시면 한번 봐주세요. 재질문 입니다 ㅠ 빌더(TWx) 992 2012/03/16
66666                 -해결- 감사합니다! Neit 1072 2012/03/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.