Q&A

  • ListView에 파일 보여주기요....
하하 ... 또 질문입니다..이거 자꾸 막히네요..

저기 ..OpenDialog에서 선택한 파일을 ListView에 아이콘과 함께

(아이콘밑에 파일명) 보여줄수 있는 방법 없습니까?

이거 간단한것 같지 않던데... 델파이 데모폴더에 비슷한게

있긴 하던데 제가 원하던게 아니고 당최 소스를 이해할수가

없어서리...쩝...

부탁합니다...

1  COMMENTS
  • Profile
    신인재 1999.06.17 06:35
    이주흥 께서 말씀하시기를...

    > 하하 ... 또 질문입니다..이거 자꾸 막히네요..

    > 저기 ..OpenDialog에서 선택한 파일을 ListView에 아이콘과 함께

    > (아이콘밑에 파일명) 보여줄수 있는 방법 없습니까?

    > 이거 간단한것 같지 않던데... 델파이 데모폴더에 비슷한게

    > 있긴 하던데 제가 원하던게 아니고 당최 소스를 이해할수가

    > 없어서리...쩝...

    > 부탁합니다...

    델코에 가보니 이미 그곳 짱이신 권용길님이 답변해 놓으신게 있더군요..

    저희 게시판에서 해답을 한번 찾아 보시고

    못찾으시면 델코에두 한번 가보세요....저의 한델의 초기 컨셉이

    델파이관련 게시판의 통합인만큼 간편한 링크기능을 잘 이용하시면

    좋겠습니다.....



    -------------------------------------------------------------------

    다음의 GetShellImage 함수를 참고하세요.

    첫 번재 인자는 ShGetFileInfo의 첫번째 인자(파일이름)와 같습니다.



    function GetShellImage(PIDL: PItemIDList; Large, Open: Boolean): Integer;

    var

    FileInfo: TSHFileInfo;

    Flags: Integer;

    begin

    FillChar(FileInfo, SizeOf(FileInfo), #0);

    Flags := SHGFI_PIDL or SHGFI_SYSICONINDEX or SHGFI_ICON;

    if Open then Flags := Flags or SHGFI_OPENICON;

    if Large then Flags := Flags or SHGFI_LARGEICON

    else Flags := Flags or SHGFI_SMALLICON;

    SHGetFileInfo(PChar(PIDL),

    0,

    FileInfo,

    SizeOf(FileInfo),

    Flags);

    Result := FileInfo.iIcon;

    end;



    그리고, ListView에 Image를 붙이는 작업은 다음과 같습니다.

    var

    FileInfo: TSHFileInfo;

    ...

    ImageListHandle := SHGetFileInfo('C:',

    0,

    FileInfo,

    SizeOf(FileInfo),

    SHGFI_SYSICONINDEX or SHGFI_SMALLICON);

    SendMessage(ListView.Handle, LVM_SETIMAGELIST,

    LVSIL_SMALL, ImageListHandle);



    ImageListHandle := SHGetFileInfo('C:',

    0,

    FileInfo,

    SizeOf(FileInfo),

    SHGFI_SYSICONINDEX or SHGFI_LARGEICON);



    SendMessage(ListView.Handle, LVM_SETIMAGELIST,

    LVSIL_NORMAL, ImageListHandle);



    위의 코드는 델파이4의 예제(DEMOSVIRTUAL LISTVIEW)에서

    뽑아낸 것입니다.

    이 예제를 분석하시면 많은 것을 얻으실 수 있을겁니다.