C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[3387] XP Theme Manager 1.2b .. 드뎌 동작시키다...[수정했음]
김상구.패패루 [peperu] 2975 읽음    2002-02-04 20:16
<그림관전포인트...>
1. 메뉴밑의 그림자
2. 트리뷰의 아이콘(알파값 적용 안됨. 버그인듯..)
3. 툴바의 아이콘(알파값 적용됨)
4. 페이지컨트롤의 탭영역 배경색.. 투명효과 안남(버그인듯)

<자료실의 것은 1.1버전이고 제가 테스트한 것은 1.2b버전입니다. 1.2에서는 원래 것으로 컴파일하면 디자인시 폼에 컨트롤을 박아 넣는 순간 엑세스 바이올레이션 에러 뜹니다.>

아.. 이것때문에 정말 고생 직사게 했네여...

결론적으로, 저자의 실수로 인해 원본 pas소스의 일부분을 수정해야 합니다.(딱 한 줄.. 순서만 바꾸면 됩니다. 어딘고하니.. TThemeManager의 OnCreate에서.. 앞쪽에 디자인타임인지 아닌지 검사하는 부분이 있고.. 그 안에 Init어쩌구.. 테마 관련 DLL펑션 포인터를 초기화하는 부분이 있습니다. 그걸 디자인타임인지 채크하는 부분 바깥쪽으로 옮기면 됩니다. 지금은 소스 쳐다보기도 싫어서 말로 설명한거니까 넘 짜증내지 마세요..)
또한, 저자가 누락시킨 SchemaDef.h 파일을 플랫폼 SDK에서 가져와야 하고.. 기왕 가져오는거 tmschema.h와 uxtheme.h 파일도 함께..

그리고.. 그냥 컴파일하면 컴파일은 되지만 링킹에서 에러납니다.
TransparentBlt함수가 문제를 일으키는데.. 이를 해결하기 위해 패키지에 msimg32.lib를 첨가시켜야 하구요..

행여나 msimg32.lib가 옛날꺼라서 제대로 동작하지 않는다면 플랫폼 SDK에 있는 새버전을 COFF2OMF를 가지구 빌더용 라이브러리로 바꿔서 덮어쓰면 됩니다.

아이콘 예쁘게 보이게 하려면 dcr파일도 파스칼 유닛 이름으로 바꿔야 하구요..

여기까지 하면 컨트롤의 인스톨까지는 성공할 수 있습니다.

막상 박아넣고 실행하면 아까 SDK에서 가져온 헤더파일 중 하나에서 에러나는데.. 이것도 고쳐야 하구요(안고치고 하는 방법 있는걸로 알고 있는데.. 전 잘 모르겠습니다)

아무튼.. 조만간에 정리해서 컴파일 방법과 제가 수정한 파일 등을 자료실에 올리겠습니다.


테스트 결과 일부 버그는 발견되었지만 대세에는 지장이 없는 버그입니다.
아직 빌더6가 안나와서 뭐라고 말하긴 어렵지만 빌더5로 만든 프로젝트에 XP테마를 적용하는 방법으로는 가장 확실한 방법인 듯 싶네요.
소스를 살펴보니.. 허거덕.. 후킹으로 전부 서브클래싱해버리는군요.. 널라워라... 쩝..


+ -

관련 글 리스트
3387 XP Theme Manager 1.2b .. 드뎌 동작시키다...[수정했음] 김상구.패패루 2975 2002/02/04
4218     Re:XP Theme Manager 1.2b .. 드뎌 동작시키다...[수정했음] 김진수 2612 2002/04/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.