Guest User

Untitled

a guest
Jan 21st, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. Function GetTestClass(lngClassNo as long) as Object
  2.  
  3. Dim strClassName as String
  4. strClassName = "CTest" & CStr(lngClassNo)
  5.  
  6. Set GetTestClass = New instance of class(strClassName)
  7.  
  8. End Function
  9.  
  10. Function GetTestClass(lngClassNo as long) as Object
  11.  
  12. Select Case lngClassNo
  13. Case 1
  14. Set GetTestClass = New CTest1
  15. Case 2
  16. Set GetTestClass = New CTest2
  17. ...
  18.  
  19. End Select
  20.  
  21. End Function
  22.  
  23. Function GetTestClass(lngClassNo as long) as Object
  24.  
  25. Set GetTestClass = CreateObject("MyDll.CTest" & lngClassNo)
  26.  
  27. End Function
  28.  
  29. Public Function CreateInstance(typeName As String) As Object
  30. Dim module As VBComponent
  31. Set module = LazilyCreateMPCache()
  32.  
  33. If Not FunctionExists(typeName, module) Then
  34. Call AddInstanceCreationHelper(typeName, module)
  35. End If
  36.  
  37. Dim instanceCreationHelperName As String
  38. instanceCreationHelperName = module.name & ".GetInstanceOf" & typeName
  39. Set CreateInstance = Application.Run(instanceCreationHelperName)
  40. End Function
  41.  
  42. Sub AddInstanceCreationHelper(typeName As String, module As VBComponent)
  43. Dim strCode As String
  44. strCode = _
  45. "Public Function GetInstanceOf" & typeName & "() As " & typeName & vbCrLf & _
  46. "Set GetInstanceOf" & typeName & " = New " & typeName & vbCrLf & _
  47. "End Function"
  48. Call AddFunction(strCode, module)
  49. End Sub
  50.  
  51. Dim CTest() as New CTest
  52. For n = 1 to 10
  53. Redim Preserve CTest(n)
  54. CTest(n).Name = "CTest" & CStr(n)
  55. Next l
Add Comment
Please, Sign In to add comment