2011-08-15 2 views
9

목록보기에서 행의 높이에 단지 2px :)를 추가해야합니다 (사용자 정의 그려진 진행 막대가 너무 좁습니다).보고서 스타일에서 listview의 행 높이를 늘리는 방법은 무엇입니까?

두 개의 좋은 답변 Change Listview item height, http://www.delphipages.com/forum/showthread.php?t=49939이 있지만 그럴 수 없습니다.

나는이 이미지 목록과 함께 할 수 있다는 것을 알고 있지만, 이미 16 × 16 이미지 :

아무도 도와 줄 수 있나요? 감사하겠습니다. CN_MEASUREITEM 제어 알림 메시지에

답변

13

에 응답, 다음과 같이

type 
    TListView = class(ComCtrls.TListView) 
    private 
    procedure CNMeasureItem(var Message: TWMMeasureItem); message CN_MEASUREITEM; 
    end; 

    TForm1 = class(TForm) 
    ... 

procedure TListView.CNMeasureItem(var Message: TWMMeasureItem); 
begin 
    inherited; 
    Inc(Message.MeasureItemStruct.itemHeight, 2); 
end; 

참고 : OwnerDraw 속성이 true 인 경우이 메시지는 전송됩니다.

+0

와우! 감사!!! 나는 TMS 'TAdvListView의 소스 코드를 보았고이 메시지'CNDrawItem (var Message : TWMDrawItem);도 처리되었다 (링크 delphipages는 TMS에서와 같은 코드를 가짐). 왜? – maxfax

+0

Dunno TAdvListView. 기본 TListView에는 OnDrawItem 이벤트가 이미 있습니다. – NGLN

+0

id는별로 중요하지 않습니다. :) 작동합니다! 당신은 좋은 프로그래머이자 사람입니다! 감사! – maxfax

2

코드를 작성하지 않고 빠르고 간단하게 대체 할 수있는 방법은 TImageList를 추가하고 너비를 1로 설정하고 높이를 줄 높이로 지정하고 목록보기의 SmallImages에 할당하는 것입니다.