CheckBoxes 속성을 활성화하면 TListView 컨트롤에서 LVS_EX_SUBITEMIMAGES 및 LVS_EX_INFOTIP 스타일이 비활성화되는 매우 오래된 버그입니다.
이 버그를 해결하기 위해이 해결 방법을 사용할 수 있습니다.
1)
안 양식이 델파이 7에서 테스트 코드 (그리고 윈도우 7)을 넣어 목록보기
2)에서 체크 박스의 속성입니다.
const
LVM_FIRST =$1000;
LVS_EX_SUBITEMIMAGES = $00000002;
LVM_SETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 54;
LVM_GETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 55;
function ListView_GetExtendedListViewStyle(LVWnd: HWnd): DWORD;
begin
Result := SendMessage(LVWnd, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
end;
function ListView_SetExtendedListViewStyle(LVWnd: HWnd; ExStyle: LPARAM): DWORD;
begin
Result := SendMessage(LVWnd, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, ExStyle);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ListView1.Checkboxes:=True;//Activate the checkbox in the listview
ListView_SetExtendedListViewStyle(ListView1.Handle,ListView_GetExtendedListViewStyle(ListView1.Handle) OR LVS_EX_SUBITEMIMAGES); //Activate the LVS_EX_SUBITEMIMAGES style.
end;
3) 최종 결과가
alt text http://i50.tinypic.com/20hrfhd.png
입니다 지금까지 난 당신이 자체가 그 '체크 박스'이미지를 사용하는 Windows 이후 표준 제어로 모두를 가질 수 없습니다 알다시피, 그러므로 소유자에게 각 목록 항목을 그려야합니다 – zz1433