1 
   2     ''' // ****************************************************************
   3     ''' // Resize User Form
   4     ''' // Demo
   5     ''' // (c)digital-ecom GmbH, 2009
   6 
   7     ''' // Main: Create some dummy controls and show User Form.
   8     ''' // ****************************************************************
   9 
  10     Option Explicit
  11     Option Private Module
  12 
  13     ''' // Main:
  14     Sub showResizeDemo()
  15     Dim dlgCaption As String
  16     Dim TreeView As TreeView
  17     Dim XNode As Node
  18     Dim WS As Worksheet
  19     Dim r As Long
  20     Dim c As Integer
  21     Dim lr As Long
  22     Dim lc As Integer
  23     Const BASEPOSITION As Integer = 1
  24     Const TREEVIEW_BASE_TEXT As String = "World"
  25 
  26         ''' // Use Windows API calls in order to add Minimize and Maximize Buttons
  27         dlgCaption = dlgResizeDemo.Caption
  28         Call Tools.UserForm_AddMaximizeBtn(dlgCaption)
  29 
  30         ''' // Declare Worksheet to read dummy data from
  31         Set WS = ThisWorkbook.Worksheets("ResizeDemoCountryLists")
  32         lr = Tools.Get_Last_Row(WS)
  33         lc = Tools.Get_Last_Column(WS)
  34 
  35         ''' // Create a dummy treeview ctrl
  36         Set TreeView = dlgResizeDemo.TreeView1
  37         TreeView.Nodes.Clear
  38         Set XNode = TreeView.Nodes.Add(, , """" & BASEPOSITION & """", TREEVIEW_BASE_TEXT)
  39         For c = 1 To lc
  40             Set XNode = TreeView.Nodes.Add("""" & BASEPOSITION & """", tvwChild, """" & BASEPOSITION & c & """", WS.Cells(1, c).Value)
  41         Next
  42         TreeView.HideSelection = False
  43         TreeView.Nodes("""" & BASEPOSITION & 1 & """").Selected = True
  44         c = TreeView.SelectedItem.Index - 1
  45 
  46         ''' // ''' // Create  dummy ListBox ctrls
  47         Call ListView1_Set(WS, lr, c)
  48         Call ListView2_Set(WS, lr)
  49 
  50         dlgResizeDemo.Show
  51     End Sub
  52 
  53     Sub ListView1_Set(WS As Worksheet, lr As Long, c As Integer)
  54     Dim r As Long
  55     Dim sString As String
  56 
  57         dlgResizeDemo.ListBox1.Clear
  58         If c = 0 Then
  59             dlgResizeDemo.ListBox2.Clear
  60             Exit Sub
  61         End If
  62 
  63         For r = 2 To lr
  64             sString = WS.Cells(r, c).Value
  65             If sString = "" Then
  66             Else
  67                 Call dlgResizeDemo.ListBox1.AddItem(sString)
  68             End If
  69         Next
  70         dlgResizeDemo.ListBox1.ListIndex = 1
  71     End Sub
  72 
  73     Sub ListView2_Set(WS As Worksheet, lr As Long)
  74     Dim r As Long
  75 
  76         dlgResizeDemo.ListBox2.Clear
  77 
  78         For r = 2 To lr
  79             If dlgResizeDemo.ListBox1.ListIndex = 1 Then
  80                 dlgResizeDemo.ListBox2.AddItem (r)
  81             ElseIf dlgResizeDemo.ListBox1.ListIndex = 2 Then
  82                 dlgResizeDemo.ListBox2.AddItem (r * 2)
  83             Else
  84                 dlgResizeDemo.ListBox2.AddItem (r * 10)
  85             End If
  86         Next
  87     End Sub
  88