Res /

Qfilelistview Inc

Documentation

Resources

The Wiki

edit SideBar

Qfilelistview Inc
'File source from Holyguard.net
' custom component programed by jordi Ramos, bug clear 2004
' Use QFileListV.Directory = your folder for shearch
'     QFileListV.Populate = populate list View with files

     $TYPECHECK On
     $INCLUDE "RapidQ.inc"


     TYPE SHFILEINFO
      hIcon AS LONG                      '  out: icon
      iIcon AS INTEGER                   '  out: icon index
      dwAttributes AS DWORD              '  out: SFGAO_ flags
      szDisplayName AS STRING * MAX_PATH '  out: display name (or path)
      szTypeName AS STRING * 80          '  out: type name
     END TYPE

     CONST MAX_PATH = 260

     CONST SHGFI_DISPLAYNAME    = &H200
     CONST SHGFI_TYPENAME       = &H400
     CONST SHGFI_SYSICONINDEX   = &H4000
     CONST SHGFI_LARGEICON      = &H0
     CONST SHGFI_SMALLICON      = &H1
     CONST SHGFI_ICON           = &H100

     CONST LVM_FIRST            = &H1000
     CONST LVM_SETIMAGELIST     = (LVM_FIRST + 3)
     CONST LVM_GETBKIMAGEA      = (LVM_FIRST + 69)
     CONST LVM_SETITEMPOSITION  = (LVM_FIRST + 15)
     CONST LVM_SETBKIMAGEA      = (LVM_FIRST + 68)
     CONST LVBKIF_SOURCE_URL    = 2
     CONST LVBKIF_STYLE_NORMAL  = &H0
     CONST LVSIL_NORMAL         = 0
     CONST LVSIL_SMALL          = 1


     DECLARE FUNCTION SHGetFileInfo LIB "shell32.dll" ALIAS "SHGetFileInfoA" _
      (pszPath AS STRING, _
      dwFileAttributes AS LONG, _
      psfi AS SHFILEINFO, _
      cbFileInfo AS LONG, _
      uFlags AS LONG) AS DWORD
     DECLARE FUNCTION DestroyIcon LIB "user32" ALIAS "DestroyIcon" _
      (ByVal hIcon AS LONG) AS LONG


     DIM FI AS SHFILEINFO

     TYPE QFileListV EXTENDS QLISTVIEW
PUBLIC:
      Directory AS STRING
      FileSpec AS STRING
      FileAttribute AS LONG
      ImgList AS QIMAGELIST

      SUB Populate
       DIM himlLarge AS DWORD
       DIM himlSmall AS DWORD
       DIM FileName AS STRING
       DIM a AS INTEGER
       a = 0
       himlLarge = SHGetFileInfo("c:\", 0, FI, SIZEOF(FI), SHGFI_SYSICONINDEX OR SHGFI_LARGEICON)
       himlSmall = SHGetFileInfo("c:\", 0, FI, SIZEOF(FI), SHGFI_SYSICONINDEX OR SHGFI_SMALLICON)
       sendmessage This.handle, LVM_SETIMAGELIST, LVSIL_NORMAL, himlLarge
       sendmessage This.handle, LVM_SETIMAGELIST, LVSIL_SMALL,  himlSmall
       This.Clear
       This.ClearColumns
      ' change this line for put your lenguage
       This.AddColumns "Nombre","Tamaño","Tipo","Nodificado"

       IF RIGHT$(This.Directory,1)<> "\" THEN This.Directory = This.Directory +"\"
       FileName = DIR$(This.Directory + This.FileSpec,This.FileAttribute)
       WHILE LEN(FileName)>0
        SHGetFileInfo(This.Directory + FileName, 0, FI, SIZEOF(FI), SHGFI_DISPLAYNAME OR SHGFI_TYPENAME OR SHGFI_ICON)
        This.AddItems FI.szDisplayName
        This.Item(a).ImageIndex = FI.iIcon
        This.AddSubItem a,STR$(FileRec.Size)
        This.AddSubItem a,FI.szTypeName
        This.AddSubItem a,FileRec.Date + " " + FileRec.Time
        DestroyIcon FI.hIcon
        a++
        FileName = DIR$
       WEND
      END SUB

      CONSTRUCTOR
       Directory = CURDIR$  ' Current Dir
       FileSpec = "*.*"     ' All Files
       FileAttribute = 0    ' Only Files, See Documentation for Dir$ attributes
       ViewStyle = vsIcon   ' Show large Icons
       SortType = 2         ' Sort by name
      END CONSTRUCTOR
     END TYPE

'-------------------------------------------example for use----------------------------
' Copy and paste into your program
     DECLARE SUB mnuArchivoSalir_Click (Sender AS QMENUITEM)
     DECLARE SUB mnuVerIconoGrande_Click (Sender AS QMENUITEM)
     DECLARE SUB mnuVerIconoPequeño_Click (Sender AS QMENUITEM)
     DECLARE SUB mnuVerDetalles_Click (Sender AS QMENUITEM)
     DECLARE SUB ChangeDirectory

     CREATE Form AS QFORM
      CAPTION = "Form1"
      Width = 500
      Height = 500
      Center
      CREATE mnuMain AS QMAINMENU
       CREATE mnuArchivo AS QMENUITEM
        CAPTION = "&Archivo"
        Checked = 0
        Enabled = 1
        Visible = 1
        CREATE mnuArchivoSalir AS QMENUITEM
         CAPTION = "&Salir"
         Checked = 0
         Enabled = 1
         Visible = 1
         onclick = mnuArchivoSalir_Click
        END CREATE
       END CREATE
       CREATE mnuVer AS QMENUITEM
        CAPTION = "&Ver"
        Checked = 0
        Enabled = 1
        Visible = 1
        CREATE mnuVerIconoGrande AS QMENUITEM
         CAPTION = "Iconos &grandes"
         Checked = 0
         Enabled = 1
         Visible = 1
         onclick = mnuVerIconoGrande_Click
        END CREATE
        CREATE mnuVerIconoPequeño AS QMENUITEM
         CAPTION = "Iconos &pequeños"
         Checked = 0
         Enabled = 1
         Visible = 1
         onclick = mnuVerIconoPequeño_Click
        END CREATE
        CREATE mnuVerDetalles AS QMENUITEM
         CAPTION = "&Detalles"
         Checked = 0
         Enabled = 1
         Visible = 1
         onclick = mnuVerDetalles_Click
        END CREATE
       END CREATE
      END CREATE
      CREATE DirTree AS QDIRTREE
       InitialDir = "C:"
       Width = Form.ClientWidth
       Height = Form.ClientHeight
       OnChange = ChangeDirectory
       align = alLeft
       Width  = 200
      END CREATE
      CREATE FileListV AS QFileListV
       align = alClient
       Directory = "C:"
       ViewStyle = vsIcon
'   ViewStyle = vsSmallIcon
'   ViewStyle = vsReport
       Populate
      END CREATE
     END CREATE

'Insert your initialization code here

     Form.SHOWMODAL

'--------- Subroutines ---------

     SUB ChangeDirectory
      FileListV.Directory = DirTree.Directory
      FileListV.Populate
     END SUB


     SUB mnuArchivoSalir_Click (Sender AS QMENUITEM)
      END
     END SUB

     SUB mnuVerIconoGrande_Click (Sender AS QMENUITEM)
      FileListV.ViewStyle = vsIcon
     END SUB

     SUB mnuVerIconoPequeño_Click (Sender AS QMENUITEM)
      FileListV.ViewStyle = vsSmallIcon
     END SUB

     SUB mnuVerDetalles_Click (Sender AS QMENUITEM)
      FileListV.ViewStyle = vsReport
     END SUB

Recent Changes (All) | Edit SideBar Page last modified on August 12, 2007, at 10:36 AM Edit Page | Page History
Powered by PmWiki