Rapid-Q Documentation by William Yu (c)1999 | Appendix A: QTREEVIEW

# QTREEVIEW Component

  QTreeView displays a hierarchical list of items. Items are ordered by their index.
  QTreeView Internal Types

         TYPE TreeNodeType           '' ie. TreeView.Item(0).Text
           Text AS STRING
           ImageIndex AS INTEGER
           StateIndex AS INTEGER
           SelectedIndex AS INTEGER
           Count AS INTEGER          '' Read only
           Level AS INTEGER          '' Read only
           IsVisible AS INTEGER      '' Read only
           Handle AS INTEGER         '' Read only
           HasChildren AS INTEGER
           Selected AS INTEGER
         END TYPE

  QTreeView Properties

  Field | Type | R/W | Default

  Align | INTEGER | RW | alNone
  BorderStyle | INTEGER | RW | bsSingle
  Color | INTEGER | RW |
  Cursor | INTEGER | RW | crDefault
  Enabled | INTEGER | RW | True
  Font | QFONT | W |
  Handle | INTEGER | RW |
  Height | INTEGER | RW |
  HideSelection | INTEGER | RW | False
  Hint | STRING | RW |
  Images | QIMAGELIST | W |
  Indent | INTEGER | RW | 19
  Item | ARRAY of TreeNodeType | RW |
  ItemCount | INTEGER | RW |
  ItemIndex | INTEGER | RW |
  Left | INTEGER | RW | 0
  Parent | QFORM/QPANEL/QTABCONTROL | W |
  PopupMenu | QPOPUPMENU | W |
  ReadOnly | INTEGER | RW | False
  ShowButtons | INTEGER | RW | True
  ShowHint | INTEGER | RW | False
  ShowLines | INTEGER | RW | True
  ShowRoot | INTEGER | RW | True
  SortType | INTEGER | RW | stText
  StateImages | QIMAGELIST | W |
  TabOrder | INTEGER | RW |
  Tag | INTEGER | RW |
  Top | INTEGER | RW | 0
  TopIndex | INTEGER | RW |
  Width | INTEGER | RW |
  Visible | INTEGER | RW | True

  QTreeView Methods

  Method | Type | Description | Params

  AddItems | SUBI | Add items to treeview | STRING, Infinite
  AddChildItems | SUB (Index%, S1$, S2$, ...) | Add child item at Index% | Minimum 2
  Clear | SUB | Clear all items in treeview | 0
  Collapse | SUB (Index%, Recurse%) | Collapses node | 2
  DelItems | SUBI | Delete items from treeview | INTEGER, Infinite
  Expand | SUB (Index%, Recurse%) | Expand node, revealing its childs | 2
  FullCollapse | SUB | Collapses all nodes | 0
  FullExpand | SUB | Expands all nodes | 0
  GetItemAt | FUNCTION (X%, Y%) AS LONG | Get the index node at X,Y | 2
  InsertItem | SUB (Index%, String$) | Insert item at Index% | 2
  LoadFromFile | SUB (Filename AS STRING) | Load items from file | 1
  SaveToFile | SUB (Filename AS STRING) | Save items to file | 1
  Sort | SUB | Sort all items from A-Z | 0

  QTreeView Events

  Event | Type | Occurs when... | Params

  OnClick | VOID | TreeView was clicked on | 0
  OnChange | SUB (Index%) | Selection (not modification) has changed from one item to another | 1
  OnChanging | SUB (Index%, AllowChange%) | Selection is about to be changed | 2
  OnCollapse | SUB (Index%) | Just after a node has been collapsed | 1
  OnCollapsing | SUB (Index%, AllowCollapse%) | A node is about to be collapsed | 2
  OnDblClick | VOID | TreeView was double clicked on | 0
  OnDeletion | SUB (Index%) | A node in the tree is deleted | 1
  OnEdited | SUB (Index%, BYREF S$) | After the user edits a text of a node | 2
  OnEditing | SUB (Index%, AllowEdit%) | The user starts to edit the text | 2
  OnExpand | SUB (Index%) | After a node is expanded | 1
  OnExpanding | SUB (Index%, AllowExpansion%) | A node is about to be expanded | 2
  OnGetImageIndex | SUB (Index%) | The treeview looks up the ImageIndex of a node | 1
  OnGetSelectedIndex | SUB (Index%) | The treeview looks up the SelectedIndex of a node | 1
  OnKeyDown | SUB (Key AS Word, Shift AS INTEGER) | Key held down | 2
  OnKeyPress | SUB (Key AS BYTE) | User presses a key | 1
  OnKeyUp | SUB (Key AS Word, Shift AS INTEGER) | User releases a key | 2
  OnMouseDown | SUB (Button%, X%, Y%, Shift%) | Mouse button held down | 4
  OnMouseMove | SUB (X%, Y%, Shift%) | Mouse moves | 3
  OnMouseUp | SUB (Button%, X%, Y%, Shift%) | Mouse button is released | 4

  QTreeView Examples

      '' Tree view example, hot tracking through items

      SUB TreeViewChange (Node AS INTEGER, AllowChange AS INTEGER, Sender AS QTREEVIEW)
          IF Node = 8 THEN AllowChange = 0
      END SUB

      SUB TreeViewMouseMove (X AS INTEGER, Y AS INTEGER, Shift AS INTEGER, Sender AS QTREEVIEW)
          I = Sender.GetItemAt(X,Y)
          IF I >= 0 THEN Sender.ItemIndex = I
      END SUB

      CREATE Form AS QFORM
          Center
          CREATE TreeView AS QTREEVIEW
              Align = 5
              AddItems "1","2","3"
              AddChildItems 0, "Sub 1", "Sub 2", "Sub 3"
              AddChildItems 4, "Sub 1", "Sub 2", "Sub 3"
              FullExpand
              OnChanging = TreeViewChange
              OnMouseMove = TreeViewMouseMove
          END CREATE
      END CREATE

      '-- No real purpose, just change all items
      FOR I = 0 TO TreeView.ItemCount-1
          TreeView.Item(I).Text = STR$(I)
      NEXT

      Form.ShowModal

  Prev Component | Contents | Next Component