home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 27 / IOPROG_27.ISO / SOFT / ACTIVEB / ACTIVE.ZIP / Setupex.exe / _SETUP.1 / FlexUtils.bas < prev    next >
Encoding:
BASIC Source File  |  1998-04-16  |  2.0 KB  |  59 lines

  1. Attribute VB_Name = "FlexUtils"
  2. 'Note: Needed for SpreadColumnsEvenly() below. -AJM, Origins
  3. Private Const SM_CXVSCROLL = 2
  4. Private Declare Function GetSystemMetrics Lib "user32" (ByVal id As Long) As Long
  5.  
  6. 'Name: SpreadColumnsEvenly"
  7. 'Description: Spreads the columns of a MSFlexGrid Control to take up exactly"
  8. '             the width of the control. -AJM, Origins"
  9. Public Sub SpreadColumnsEvenly(flex As MSFlexGrid)
  10.     With flex
  11.         Dim i As Integer, iCols As Integer
  12.         Dim iClientWidth As Integer
  13.         Dim iClientHeight As Integer
  14.         Dim iAdjust As Integer
  15.         Dim iTotalUsed As Integer
  16.         Dim iColWidth As Integer
  17.         
  18.         If .Appearance = flex3D Then
  19.             iClientHeight = .Height - (5 * Screen.TwipsPerPixelY)
  20.         Else
  21.             iClientHeight = .Height - (1 * Screen.TwipsPerPixelY)
  22.         End If
  23.         
  24.         'determine if we going to need to adjust for a vertical scroll bar
  25.         If .Rows > 0 Then
  26.             If .Rows * .RowHeight(0) > iClientHeight Then
  27.                 iAdjust = Screen.TwipsPerPixelX * GetSystemMetrics(SM_CXVSCROLL)
  28.             End If
  29.         End If
  30.         
  31.         If .Appearance = flex3D Then
  32.             iClientWidth = .Width - (5 * Screen.TwipsPerPixelX) - iAdjust
  33.         Else
  34.             iClientWidth = .Width - (1 * Screen.TwipsPerPixelX) - iAdjust
  35.         End If
  36.         
  37.         iCols = .Cols
  38.         If iCols = 0 Then
  39.             Exit Sub
  40.         End If
  41.         
  42.         iTotalUsed = 0
  43.         iColWidth = (CDbl(iClientWidth) / iCols)
  44.         For i = 0 To iCols - 1
  45.             If i = iCols - 1 Then
  46.                 If (iClientWidth - iTotalUsed) < 0 Then
  47.                     .ColWidth(i) = iColWidth
  48.                 Else
  49.                     .ColWidth(i) = (iClientWidth - iTotalUsed) - (2 * Screen.TwipsPerPixelX)
  50.                 End If
  51.             Else
  52.                 .ColWidth(i) = iColWidth
  53.                 iTotalUsed = iTotalUsed + .ColWidth(i)
  54.             End If
  55.             
  56.         Next i
  57.     End With
  58. End Sub
  59.