2014-06-18 2 views
2

TButton은 델파이 XE2에 Style 속성이 있습니다. 이 속성은 다음 bsSplitButton로 설정되면 드롭 다운 화살표는 버튼의 우측에 표시된다TButton 결핍증

  1. 그러나

    enter image description here

    이 드롭 다운 영역 일부 불편이있다 많은 경우에 너무 좁 으면 드롭 다운 영역의 정적 폭은 11 픽셀에 불과합니다.

  2. 마우스 포인터를 드롭 다운 영역 위로 가져 가면 드롭 다운 영역에 대한 명시적인 호버 (hover) 표시가 없습니다.

이 불편을 치료하는 TButton의 자손을 어떻게 구현할 수 있습니까? 하위 항목은 DropDownWidth 속성을 가져야하며 마우스를 드롭 다운 영역 위로 가져 가면 드롭 다운 표시를 처리하고 변경하는 속성이 있어야합니다.

+0

어떻게 구현할 수 있습니까? 에디터를 불 태우고 코드를 작성하십시오. 구체적인 도움을 원한다면 좀 더 구체적인 질문을해야합니다. –

답변

10

자손은 Button_SplitInfo (또는 BCM_SETSPLITINFO)으로 전화하여 분할 폭을 조정해야합니다. 다음은 런타임 사용 예는, 당신이 당신의 자손에 비슷한 기능을 통합 할 수 있습니다 :

procedure SetButtonSplitWidth(Button: TButton; Width: Integer); 
var 
    Info: TButtonSplitinfo; 
begin 
    if Button.Style = bsSplitButton then begin 
    Info.mask := BCSIF_SIZE; 
    Info.size.cx := Width; 
    Info.size.cy := 0; 
    Button_SetSplitInfo(Button.Handle, Info); 
    Button.Invalidate; 
    end; 
end; 

샘플 결과를 호출

SetButtonSplitWidth(Button2, 25); 

으로하면이 같다 :

enter image description here

다른 방법은 documentation을 참조하십시오. 네이티브 버튼 컨트롤의 호버링 동작을 수정하는 기능은 없습니다. 이를 위해서는 TButton에서 시작하는 것이 좋습니다.