Field | Type | R/W | Default |
|
|
|
|
Align | INTEGER | RW | alNone |
| Align determines how the control aligns within its parent control.
|
BorderStyle | INTEGER | RW | bsSingle |
CheckBoxes | INTEGER | RW | False |
| CheckBoxes specifies whether checkboxes appear next to the items in the listview.
|
Color | INTEGER | RW | |
Column | ARRAY of ColumnType | RW | |
ColumnClick | INTEGER | RW | True |
| ColumnClick determines whether the column header behaves like a button.
|
ColumnsCount | INTEGER | RW | |
Cursor | INTEGER | RW | crDefault |
Enabled | INTEGER | RW | True |
Font | QFONT | W | |
GridLines | INTEGER | RW | False |
| GridLines determines whether lines are drawn separating items in the list.
|
Handle | INTEGER | R | |
Height | INTEGER | RW | |
HideSelection | INTEGER | RW | False |
| HideSelection determines whether the listview gives a visual indication of which item is selected when focus shifts to another control.
|
Hint | STRING | RW | |
HotTrack | INTEGER | RW | False |
| HotTrack specifies whether list items are highlighted when the mouse passes over them.
|
Item | ARRAY of ItemType | RW | |
ItemCount | INTEGER | RW | |
ItemIndex | INTEGER | RW | |
LargeImages | QIMAGELIST | W | |
Left | INTEGER | RW | 0 |
MultiSelect | INTEGER | RW | False |
Parent | QFORM/QPANEL/QTABCONTROL | W | |
PopupMenu | QPOPUPMENU | W | |
ReadOnly | INTEGER | RW | False |
RowSelect | INTEGER | RW | False |
| RowSelect determines whether an entire row in the listview can be selected.
|
SelCount | INTEGER | RW | |
Selected | ARRAY of INTEGER | RW | |
ShowColumnHeaders | INTEGER | RW | True |
ShowHint | INTEGER | RW | False |
SmallImages | QIMAGELIST | W | |
SortType | INTEGER | RW | stNone |
| SortType determines if and how the items in the list are automatically sorted.
0 = stNone -- No sorting is done.
2 = stText -- Items are sorted according to their caption property.
|
StateImages | QIMAGELIST | W | |
SubItem | 2D ARRAY of STRING | RW | |
TabOrder | INTEGER | RW | |
Tag | INTEGER | RW | |
Top | INTEGER | RW | 0 |
Width | INTEGER | RW | |
ViewStyle | INTEGER | RW | vsIcon |
Visible | INTEGER | RW | True |
QListView Examples
' Simple .ZIP viewer (doesn't extract or anything useful like that).
' You're free to modify and distribute the code without restrictions.
' Written in Rapid-Q by William Yu
' Demonstrates QOpenDialog, QFileStream, QListView, QMainMenu, QMenuItem
' and 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 Signature/ID
TYPE ZFHeader
Signature AS LONG
Version AS WORD
GPBFlag AS WORD ' ?
Compress AS WORD ' Compression types
DateTime AS LONG ' Packed format
CRC32 AS LONG
CSize AS LONG ' Compressed size
USize AS LONG ' Uncompressed size
FileNameLen AS LONG
END TYPE
TYPE PackedDateType ' I think this is it:
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" '' Could be DeflatX as well...
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 ' Scale 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
'-- Likely not a .ZIP file
ShowMessage(ZIPFile+" is not a valid ZIP file!")
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("Can't extract "+ListView.Item(ListView.ItemIndex).Caption);
END IF
END SUB