Content Supported by Sourcelens Consulting

VERSION 5.00
Begin VB.Form frmNumbers 
   Caption         =   "Numeric Data Types"
   ClientHeight    =   5220
   ClientLeft      =   1125
   ClientTop       =   1575
   ClientWidth     =   5580
   ClipControls    =   0   'False
   LinkTopic       =   "Form1"
   LockControls    =   -1  'True
   PaletteMode     =   1  'UseZOrder
   ScaleHeight     =   5220
   ScaleWidth      =   5580
   Begin VB.CommandButton cmdType 
      Caption         =   "Double"
      Height          =   450
      Index           =   5
      Left            =   135
      TabIndex        =   7
      Top             =   4680
      Width           =   2415
   End
   Begin VB.CommandButton cmdType 
      Caption         =   "Currency"
      Height          =   450
      Index           =   4
      Left            =   135
      TabIndex        =   6
      Top             =   4185
      Width           =   2415
   End
   Begin VB.TextBox txtLoopCount 
      Height          =   320
      Index           =   2
      Left            =   4200
      TabIndex        =   8
      Text            =   "200"
      Top             =   3765
      Width           =   1300
   End
   Begin VB.CommandButton cmdType 
      Caption         =   "Long Counter"
      Height          =   450
      Index           =   3
      Left            =   135
      TabIndex        =   4
      Top             =   2910
      Width           =   2415
   End
   Begin VB.CommandButton cmdType 
      Caption         =   "Variant Counter"
      Height          =   450
      Index           =   2
      Left            =   135
      TabIndex        =   3
      Top             =   2415
      Width           =   2415
   End
   Begin VB.TextBox txtLoopCount 
      Height          =   320
      Index           =   1
      Left            =   4200
      TabIndex        =   5
      Text            =   "200"
      Top             =   1995
      Width           =   1300
   End
   Begin VB.CommandButton cmdType 
      Caption         =   "Integer Counter"
      Height          =   450
      HelpContextID   =   1
      Index           =   1
      Left            =   120
      TabIndex        =   1
      Top             =   975
      Width           =   2415
   End
   Begin VB.CommandButton cmdType 
      Caption         =   "Long Counter"
      Height          =   450
      Index           =   0
      Left            =   120
      TabIndex        =   0
      Top             =   480
      Width           =   2415
   End
   Begin VB.TextBox txtLoopCount 
      Height          =   320
      Index           =   0
      Left            =   4200
      TabIndex        =   2
      Text            =   "200"
      Top             =   60
      Width           =   1300
   End
   Begin VB.Label lblResult 
      Appearance      =   0  'Flat
      BackColor       =   &H80000005&
      BackStyle       =   0  'Transparent
      Caption         =   "00.00 secs"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H80000008&
      Height          =   255
      Index           =   5
      Left            =   4200
      TabIndex        =   17
      Top             =   4785
      Width           =   1800
   End
   Begin VB.Label lblResult 
      Appearance      =   0  'Flat
      BackColor       =   &H80000005&
      BackStyle       =   0  'Transparent
      Caption         =   "00.00 secs"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H80000008&
      Height          =   255
      Index           =   4
      Left            =   4200
      TabIndex        =   16
      Top             =   4290
      Width           =   1800
   End
   Begin VB.Label lblTitle 
      Appearance      =   0  'Flat
      AutoSize        =   -1  'True
      BackColor       =   &H00FFFFFF&
      BackStyle       =   0  'Transparent
      Caption         =   "Double vs. Currency Variables"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00800000&
      Height          =   300
      Index           =   2
      Left            =   135
      TabIndex        =   15
      Top             =   3750
      Width           =   3615
   End
   Begin VB.Line Line1 
      BorderColor     =   &H00808080&
      Index           =   0
      X1              =   0
      X2              =   7335
      Y1              =   3465
      Y2              =   3465
   End
   Begin VB.Label lblResult 
      Appearance      =   0  'Flat
      BackColor       =   &H80000005&
      BackStyle       =   0  'Transparent
      Caption         =   "00.00 secs"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H80000008&
      Height          =   255
      Index           =   3
      Left            =   4200
      TabIndex        =   14
      Top             =   3015
      Width           =   1800
   End
   Begin VB.Label lblResult 
      Appearance      =   0  'Flat
      BackColor       =   &H80000005&
      BackStyle       =   0  'Transparent
      Caption         =   "00.00 secs"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H80000008&
      Height          =   255
      Index           =   2
      Left            =   4200
      TabIndex        =   13
      Top             =   2520
      Width           =   1800
   End
   Begin VB.Label lblTitle 
      Appearance      =   0  'Flat
      AutoSize        =   -1  'True
      BackColor       =   &H00FFFFFF&
      BackStyle       =   0  'Transparent
      Caption         =   "Long vs. Variant Variables"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00800000&
      Height          =   300
      Index           =   1
      Left            =   135
      TabIndex        =   12
      Top             =   1980
      Width           =   3165
   End
   Begin VB.Line Line1 
      BorderColor     =   &H00808080&
      Index           =   3
      X1              =   0
      X2              =   7335
      Y1              =   1680
      Y2              =   1680
   End
   Begin VB.Label lblResult 
      Appearance      =   0  'Flat
      BackColor       =   &H80000005&
      BackStyle       =   0  'Transparent
      Caption         =   "00.00 secs"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H80000008&
      Height          =   255
      Index           =   1
      Left            =   4200
      TabIndex        =   11
      Top             =   1080
      Width           =   1800
   End
   Begin VB.Label lblResult 
      Appearance      =   0  'Flat
      BackColor       =   &H80000005&
      BackStyle       =   0  'Transparent
      Caption         =   "00.00 secs"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H80000008&
      Height          =   255
      Index           =   0
      Left            =   4200
      TabIndex        =   10
      Top             =   585
      Width           =   1800
   End
   Begin VB.Label lblTitle 
      Appearance      =   0  'Flat
      AutoSize        =   -1  'True
      BackColor       =   &H00FFFFFF&
      BackStyle       =   0  'Transparent
      Caption         =   "Integer vs. Long Variables"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00800000&
      Height          =   300
      Index           =   0
      Left            =   120
      TabIndex        =   9
      Top             =   45
      Width           =   3165
   End
   Begin VB.Line Line1 
      BorderColor     =   &H00FFFFFF&
      BorderWidth     =   2
      Index           =   2
      X1              =   15
      X2              =   7350
      Y1              =   1695
      Y2              =   1680
   End
   Begin VB.Line Line1 
      BorderColor     =   &H00FFFFFF&
      BorderWidth     =   2
      Index           =   1
      X1              =   15
      X2              =   7350
      Y1              =   3480
      Y2              =   3465
   End
End
Attribute VB_Name = "frmNumbers"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_TemplateDerived = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private Sub cmdVariant_Click(Index As Integer)

End Sub


Private Sub lblInteger_Click(Index As Integer)

End Sub


Private Sub cmdType_Click(Index As Integer)
  Dim vCounter1 As Variant, vCounter2 As Variant, vCounter3 As Variant, vResult As Variant
  Dim lCounter1 As Long, lCounter2 As Long, lCounter3 As Long, lResult As Long
  Dim iCounter1 As Integer, iCounter2 As Integer, iCounter3 As Integer, iResult As Integer
  Dim dCounter1 As Double, dCounter2 As Double, dCounter3 As Double, dResult As Double
  Dim cCounter1 As Currency, cCounter2 As Currency, cCounter3 As Currency, cResult As Currency
  
  Dim start As Double, Finish As Double
  
  On Error GoTo cmd_Error
  
  Screen.MousePointer = vbHourglass
  lblResult(Index).Caption = "0.00 secs."
  lblResult(Index).Refresh
  
  Select Case Index
    Case 0 ' Long Counter
      start = Timer
      For lCounter1 = 1 To txtLoopCount(0).Text
          For lCounter2 = 1 To lCounter1
              For lCounter3 = 1 To lCounter2
                  lResult = lCounter3 * 100 + lCounter2 * 10 + lCounter1
              Next lCounter3
          Next lCounter2
      Next lCounter1
      Finish = Timer

    Case 1  ' Integer Counter
      start = Timer
      For iCounter1 = 1 To txtLoopCount(0).Text
          For iCounter2 = 1 To iCounter1
              For iCounter3 = 1 To iCounter2
                  iResult = iCounter3 * 100 + iCounter2 * 10 + iCounter1
              Next iCounter3
          Next iCounter2
      Next iCounter1
      Finish = Timer
    
    Case 2  ' Variant Counter
      start = Timer
      For vCounter1 = 1 To txtLoopCount(1).Text
          For vCounter2 = 1 To vCounter1
              For vCounter3 = 1 To vCounter2
                  vResult = vCounter3 * 100 + vCounter2 * 10 + vCounter1
              Next vCounter3
          Next vCounter2
      Next vCounter1
      Finish = Timer
    
    Case 3  ' Long Counter
      start = Timer
      For lCounter1 = 1 To txtLoopCount(1).Text
          For lCounter2 = 1 To lCounter1
              For lCounter3 = 1 To lCounter2
                  lResult = lCounter3 * 100 + lCounter2 * 10 + lCounter1
              Next lCounter3
          Next lCounter2
      Next lCounter1
      Finish = Timer
    
    Case 4  ' Currency
      start = Timer
      For cCounter1 = 1 To txtLoopCount(2).Text
          For cCounter2 = 1 To cCounter1
              For cCounter3 = 1 To cCounter2
                  cResult = (cCounter3 * 9.0123456789) + (cCounter2 * 0.001) + (cCounter1 / 0.125) - (cCounter2 * 0.001)
              Next cCounter3
          Next cCounter2
      Next cCounter1
      Finish = Timer
    
    
    Case 5  ' Double
      start = Timer
      For dCounter1 = 1 To txtLoopCount(2).Text
          For dCounter2 = 1 To dCounter1
              For dCounter3 = 1 To dCounter2
                  ' dResult = dCounter3 * 9.0123456789 + dCounter2 * 0.001 + dCounter1 / 0.125
                  cResult = (dCounter3 * 9.0123456789) + (dCounter2 * 0.001) + (dCounter1 / 0.125) - (dCounter2 * 0.001)
              Next dCounter3
          Next dCounter2
      Next dCounter1
      Finish = Timer
    
  End Select
  
  lblResult(Index).Caption = Format$(Finish - start, "00.00") & " secs."
  Screen.MousePointer = vbDefault
  Exit Sub

cmd_Error:
  Screen.MousePointer = vbDefault
  MsgBox "Error " & Str$(Err) & ".  " & Error$ & vbCrLf & "We will now exit this procedure.", vbExclamation, "Numeric Data Type Error"
  Exit Sub
  
End Sub


Private Sub Form_Load()
  PosForm Me
End Sub