2013-10-02 5 views
1

저는 작업중인 응용 프로그램에서 소수의 BitBtn에 특정 스타일을 적용 할 수 있기를 원합니다. VCL 스타일을 적용하여 전체 응용 프로그램을 스킨합니다.VCL 스타일을 사용할 때 일부 TBitButtons 스타일을 덮어 씁니다.

내가 웹에서 읽었던 것으로부터, 나는 TBitBtn의 내 자신의 하위 클래스를 정의 할 수 있었고, 그 클래스에 대한 스타일 훅을 정의 할 수 있었다.

TLabel 및 TEdit과 함께 작동 시켰지만 TButton 또는 TBitBtn을 관리하는 방법을 잘 모르겠습니다. 본질적으로, 테마에 포함 된 것보다는 다른 TBitBtn에 다른 배경 이미지를 적용하고 싶습니다.

+0

당신이 원하는 것을 보여줄 수 있습니까? 이미 TEdit에 대해 가지고있는 코드를 사용하거나 TButton으로 무엇을하고 싶은지 설명 해주는 의사 코드를 사용하십시오. – Johan

답변

4

VCL의 스타일을 사용하여 TBitBtn의 모양을 수정하려면, 델파이 버전

XE4,의 의존 XE5

당신이 TBitBtnStyleHook 클래스에서 파생 된 새로운 스타일의 후크를 만든 다음 DrawButton 메소드를 오버라이드 (override) 할 필요 . 이 질문을 확인하십시오 Disabling TButton issue on a VCL styled form이 경우 TButtonStyleHook.Paint 메서드를 재정의하는 예제 코드를 게시하여 버그를 수정하지만 사용자 자신의 필요에 맞게 동일한 코드를 적용 할 수 있습니다.

는 XE2, XE3

TBitBtn 그래서 유일한 옵션은 설명처럼 버튼을 끌기 위해 자신의 코드를 추가 한 후 TBitBtn 컨트롤의 CN_DRAWITEM 메시지를 처리하고있다,이 버전 스타일의 후크를 사용하지 않습니다 이 대답 Delphi XE2 VCL styles, How to disable VCL styles on TBitBtn?

+0

TStyleManager.Engine.RegisterStyleHook 시도 (TBitBtn, TButtonStyleHookFix); 그러나 나는 나의 형태로 가지고있는 TBitBtn에 나의 고리를 부르는 것처럼 보이지 않는다. TStyleManager.Engine.RegisterStyleHook (TButton, TButtonStyleHookFix); 너의 버튼을 위해 일한다. TBitThtn은 TButtonStyleHook 또는 다른 것을 사용합니까? – Alexandre

+0

in http://stackoverflow.com/questions/12195687/delphi-xe2-vcl-styles-how-to-disable-vcl-styles-on-tbitbtn TBitBtn에 대한 갈고리가 없다고 주장하십시오. – Alexandre

+0

@Alexandre, 미안 해요. 하지만 델파이 버전을 놓친 델파이의 최신 버전에서'TBitBtn'은 스타일 훅 (TBitBtnStyleHook)을 사용하여 대답이 업데이트되었습니다. – RRUZ