Referência de Objetos ou componentes

Application
ClipBoard
Printer
QBitMap
QButton
QCanvas
QCheckBox
QComboBox
QComPort
QCoolBtn
QDirTree
QEdit
QFileListBox
QFileStream
QFont
QFontDialog
QForm
QGauge
QGlassFrame
QGroupBox
QHeader
QImage
QImageList
QLabel
QListBox
QListView
QMainMenu
QMemoryStream
QMenuItem
QMySQL
QNotifyIconData
QOpenDialog
QOleObject
QOleContainer
QOutLine
QOvalBtn
QPanel
QPopMenu
QRadioButton
QRect
QRegistry
QRichEdit
QSaveDialog
QScrollBar
QScrolBox
QSocket
QSplitter
QStatusBar
QStringGrid
QStringList
QTabControl
QTimer
QTrackBar
QTreeView
Componente QListView (Mostra uma lista)

QListView provê 3 diferentes maneiras de mostrar itens em um form. Os itens podem ser mostrados em colunas com cabeçalho e sub-itens, ou individualmente com grandes ou pequenos icones.
Demais componentes    -Click Barra lateral esquerda
Informações adicionais - Click propriedades em azul
Tipo Interno de QListView

   TYPE ItemType                  ' ie. ListView.Item(0).Caption
     Caption AS STRING       
Checked AS INTEGER         
' Se CheckBoxes estiver habilitado e item estiver checado
     Handle AS INTEGER       
' Apenas leitura
     ImageIndex AS INTEGER
     Index AS INTEGER         
' Apenas leitura    
Selected AS INTEGER
     StateIndex AS INTEGER
   END TYPE

   TYPE ColumnType            
' ie. ListView.Column(0).Width
     Caption AS STRING
     Width AS INTEGER
   END TYPE
Propriedades de QListView
   Campo    Tipo    R/W+    Padrão
  Align
 INTEGER    RW  alNone
  BorderStyle
 INTEGER    RW  bsSingle
  CheckBoxes
 INTEGER    RW  False
 Color
 INTEGER    RW  
 Column
 Array de ColumnType    RW  
 ColumnClick
 INTEGER    RW  True
 ColumnsCount
 INTEGER    RW  
 Cursor
 INTEGER    RW  crDefault
 Enabled
 INTEGER    RW  True
 Font
 QFONT    W  
  GridLines
 INTEGER    RW  False
 Handle
 INTEGER    R  
 Height
 INTEGER    RW  
 HideSelection
 INTEGER    RW  False
 Hint
 STRING    RW  
 HotTrack
 INTEGER    RW  False
 Item
 ARRAY of ItemType    RW  
 ItemCount
 INTEGER    R  
 ItemIndex
 INTEGER    RW  
 LargeImages
 QIMAGELIST    W  
 Left
 INTEGER    RW  0
 MultiSelect
 INTEGER    RW  False
 Parent
 QFORM/QPANEL/QTABCONTROL    W  0
 PopupMenu
 QPOPUPMENU    W  
 ReadOnly
 INTEGER    RW  False
 RowSelect
 INTEGER    RW  False
 SelCount
 INTEGER    RW  
 Selected
 ARRAY of INTEGER    RW  
 ShowColumnHeaders
 INTEGER    RW  True
 ShowHint
 INTEGER    RW  False
 SmallImages
 QIMAGELIST    W  
 SortType
 INTEGER    RW  stNone
 StateImages
 QIMAGELIST    W  
 SubItem
 2D ARRAY of STRING    RW  
 TabOrder
 INTEGER    RW  
 Tag
 INTEGER    RW  
 Top
 INTEGER    RW  0
 ViewStyle
 INTEGER    RW  vsIcon
 Visible
 INTEGER    RW  True
 Width
 INTEGER    RW  
+ R = Propriedade de leitura   W = Propriedade de escrita            
Métodos de QListView
   Método    Tipo    Descrição  Parâmetros
 AddColumns
SUBI Adiciona colunas à listview    STRING, Infinite
 AddItems
SUBI Adiciona itens à listview    STRING, Infinite
 AddSubItem
SUB (Index%, String$) Adiciona sub-item a Index%    2
 Clear
SUB Limpa todos itens na listview    0
 ClearColumns
SUB Limpa todas colunas na listview    0
 DelItems
SUBI Apaga items da listview    INTEGER, Infinite
 DelSubItem
SUB (Index%, SubIndex%) Apaga sub-item da listview    2
 InsertItem
SUB (Index%, String$) Insere item no Index%    2
 InsertSubItem
SUB (Index%, SubIndex%, String$) Insere sub-item    3
 SwapItem
SUB (Index1%, Index2%) Permuta items    2
Eventos de QListView
   Evento    Tipo    Ocorre quando...  Parâmetros
 OnClick
VOID Item foi clicado    0
 OnChange
SUB (Index%,Change AS BYTE) Item alterado (texto, imagem, ou estado)    2
 OnColumnClick
VOID Texto da Coluna foi clicado    1
 OnDblClick
SUB (Index%,Change AS BYTE) Seleção com dois cliques    0
 OnKeyPressed
SUB (Key AS BYTE) Tecla pressionada    1
QListView exemplo:

' Simples .ZIP viewer (não descompacta nem outra coisa deste tipo).

' Você está livre para modificar e distribuir este codigo sem restrições.
' Escrito em Rapid-Q por William Yu
' Demonstra QOpenDialog, QFileStream, QListView, QMainMenu, QMenuItem
' e QImageList.


$APPTYPE GUI
$TYPECHECK ON
$INCLUDE "RAPIDQ.INC"

$RESOURCE ICO_ZIP AS "ZIP.ICO"
$RESOURCE ICO_APP AS "APP.ICO"

DECLARE SUB ZipView (ZIPFile AS STRING)
DECLARE SUB FormResize
DECLARE SUB OpenClick
DECLARE SUB ExitClick
DECLARE SUB IconClick
DECLARE SUB SmallIconClick
DECLARE SUB ReportClick
DECLARE SUB ItemDblClick

CONST SIG = &H04034B50        
' ZIP Assinatura/ID

TYPE ZFHeader
  Signature AS LONG
  Version AS WORD
  GPBFlag AS WORD  
' ?
  Compress AS WORD         ' Tipos de Compressão
  DateTime AS LONG           ' Formato de compressão
  CRC32 AS LONG
 CSize AS LONG                ' Tamanho do compactado
  USize AS LONG              
  ' Tamanho não compactado
  FileNameLen AS LONG
END TYPE

TYPE PackedDateType    
   ' Penso que seja:
  Year AS SHORT               ' 7 bits
  Month AS BYTE             
  ' 4 bits
  Day AS BYTE                 
' 5 bits
  Hour AS BYTE                
' 5 bits
  Minute AS BYTE             
' 6 bits
  Secs AS BYTE               
' 5 bits
END TYPE                       
' Total = 32 bits

DIM CompType(0 TO 9) AS STRING
    CompType(0) = "Stored"
    CompType(1) = "Shrunk"
    CompType(2) = "Reduced1"
    CompType(3) = "Reduced2"
    CompType(4) = "Reduced3"
    CompType(5) = "Reduced4"
    CompType(6) = "Imploded"
    CompType(7) = "Defalted"
    CompType(8) = "DeflatN"     
'' Poderia ser DeflatX também...
    CompType(9) = "DeflatX"

DIM OpenItem AS QMenuItem
    OpenItem.Caption = "&Open"
    OpenItem.OnClick = OpenClick
DIM BreakItem AS QMenuItem
    BreakItem.Caption = "-"
DIM ExitItem AS QMenuItem
    ExitItem.Caption = "E&xit"
    ExitItem.OnClick = ExitClick
DIM IconItem AS QMenuItem
    IconItem.Caption = "vs&Icon"
    IconItem.RadioItem = True
    IconItem.OnClick = IconClick

DIM SmallIconItem AS QMenuItem
    SmallIconItem.Caption = "vs&SmallIcon"
    SmallIconItem.RadioItem = True
    SmallIconItem.OnClick = SmallIconClick
DIM ReportItem AS QMenuItem
    ReportItem.Caption = "vs&Report"
    ReportItem.RadioItem = True
    ReportItem.Checked = True
    ReportItem.OnClick = ReportClick

DIM FileMenu AS QMenuItem
    FileMenu.Caption = "&File"
    FileMenu.AddItems OpenItem, BreakItem, ExitItem
DIM ViewMenu AS QMenuItem
    ViewMenu.Caption = "&View"
    ViewMenu.AddItems IconItem, SmallIconItem, ReportItem

DIM ImageList1 AS QImageList
    ImageList1.Height = 32
    ImageList1.Width = 32
    ImageList1.AddICOHandle ICO_APP
    ImageList1.AddICOHandle ICO_ZIP
DIM ImageList2 AS QImageList           
' Escala 16x16
    ImageList2.Height = 16
    ImageList2.Width = 16
    ImageList2.AddICOHandle ICO_APP
    ImageList2.AddICOHandle ICO_ZIP

CREATE Form AS QForm
  ICOHandle = ICO_ZIP
  Center
  OnResize = FormResize
  Height = 330
  Width = 525
  Caption = "Simple .ZIP Viewer for Rapid-Q"
  CREATE MainMenu AS QMainMenu

   
AddItems FileMenu, ViewMenu
  END CREATE
  CREATE ListView AS QListView
    Width = Form.ClientWidth
    Height = Form.ClientHeight
    SmallImages = ImageList2
    LargeImages = ImageList1
    ViewStyle = vsReport
    AddColumns "FileName","Length","Method","Size","Rate","Date","Time","CRC-32"
    Column(0).Width = 200
    Column(4).Width = 40
    Column(5).Width = 70
    Column(7).Width = 70
    OnDblClick = ItemDblClick
  END CREATE
  ShowModal
END CREATE


'------------------------------------------------------------------

SUB ZipView (ZIPFile AS STRING)
  DIM Hdr      AS ZFHeader
  DIM ZF       AS QFileStream
  DIM PD       AS PackedDateType
  DIM FileName AS STRING

 
DIM Index    AS INTEGER

  IF ZF.Open(ZIPFile, fmOpenRead) = False THEN
    ShowMessage("Problem with reading "+ZIPFile)
    EXIT SUB
  END IF

  ListView.Clear
  Hdr.Signature = ZF.ReadNum(4)

  Index = 0
  WHILE Hdr.Signature = SIG
    Hdr.Version  = ZF.ReadNum(2)
    Hdr.GPBFlag  = ZF.ReadNum(2)
    Hdr.Compress = ZF.ReadNum(2)
    Hdr.DateTime = ZF.ReadNum(4)
    Hdr.CRC32 = ZF.ReadNum(4)
    Hdr.CSize = ZF.ReadNum(4)
    Hdr.USize = ZF.ReadNum(4)
    Hdr.FileNameLen = ZF.ReadNum(4)

    FileName = ZF.ReadStr(Hdr.FileNameLen)

    PD.Year = ((Hdr.DateTime SHR 25) AND &H7F) + 1980
    PD.Month = (Hdr.DateTime SHR 21) AND &H0F
    PD.Day = (Hdr.DateTime SHR 16) AND &H1F
    PD.Hour = (Hdr.DateTime SHR 11) AND &H1F
    PD.Minute = (Hdr.DateTime SHR 5) AND &H3F
    PD.Secs = Hdr.DateTime AND &H1F
    ListView.AddItems FileName
    IF INSTR(UCASE$(FileName), ".ZIP") THEN
      ListView.Item(Index).ImageIndex = 1
    END IF
    ListView.AddSubItem Index, STR$(Hdr.USize)

   
ListView.AddSubItem Index, CompType(Hdr.Compress)
    ListView.AddSubItem Index, STR$(Hdr.CSize)
    IF Hdr.USize = 0 THEN
      ListView.AddSubItem Index, "----"
    ELSE
      ListView.AddSubItem Index, STR$(INT((Hdr.USize - Hdr.CSize) / Hdr.USize * 100))+"%"
    END IF
    ListView.AddSubItem Index, STR$(PD.Month)+"-"+STR$(PD.Day)+"-"+STR$(PD.Year)
    ListView.AddSubItem Index, STR$(PD.Hour)+":"+STR$(PD.Minute)
    ListView.AddSubItem Index, LCASE$(HEX$(Hdr.CRC32))
    ZF.Seek(Hdr.CSize, soFromCurrent)
    Hdr.Signature = ZF.ReadNum(4)
    Index = Index + 1
  WEND

  IF Index = 0 THEN
    
'-- Provavelmente um arquivo  não .ZIP
     ShowMessage(ZIPFile+" não é um arquivo ZIP válido!")
  END IF
END SUB

SUB OpenClick
  DIM OpenDialog AS QOpenDialog

  OpenDialog.InitialDir = CurDir$
  OpenDialog.Filter = "ZIP Files (*.zip)|*.zip|All Files (*.*)|*.*"

  IF OpenDialog.Execute THEN
    ZipView(OpenDialog.FileName)
  END IF
END SUB

SUB ExitClick
  Form.Close
END SUB


SUB FormResize
  ListView.Height = Form.ClientHeight
  ListView.Width = Form.ClientWidth
END SUB

SUB IconClick
  IconItem.Checked = True
  ListView.ViewStyle = vsIcon
END SUB

SUB SmallIconClick
  SmallIconItem.Checked = True
  ListView.ViewStyle = vsSmallIcon
END SUB

SUB ReportClick
  ReportItem.Checked = True
  ListView.ViewStyle = vsReport
END SUB

SUB ItemDblClick
  IF ListView.ItemIndex >= 0 THEN
    ShowMessage("Não é possivel extrair "+ListView.Item(ListView.ItemIndex).Caption);
  END IF
END SUB


Sinta-se à vontade para dar sugestões e fazer críticas construtivas.

Anterior           Alto da página           Página Inicial             Próxima