VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "CForm"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit

' collezione dei controlli contenuti nel form
Dim cVBControls As Collection

'Sub pubblica per accettare il riferimento del form da gestire
Public Sub SetVbForm(oFrm As Object)

Dim oFormCtr As Control
Dim oCtr As CControl
'Dim oForm As Form
'
'   Set oForm = New Form
'   oForm.mForm = oFrm
   
   On Error GoTo GestErr
   
   
   ' Cicla tutti i controlli presenti nel form
   For Each oFormCtr In oFrm
      
      If InStr(1, oFormCtr.Tag, "|!|") Then
         GoTo SaltaControllo
      End If
      
      ' crea un oggetto di tipo CControl (che gestisce un SINGOLO controllo)
      Set oCtr = New CControl
      
      'If oCtr.SetVbControl(oFormCtr, oFrm) Then  <--- QUI PASSO IL LA FORM PER CERCARE DI OTTIMIZZARE IL CODICE DI SELEZIONE MA è DA PROVARE MEGLIO
      
      ' se correttamente gestito, lo inserisco nella collection
      If oCtr.SetVbControl(oFormCtr, oFrm) Then
         ' inserisco il riferimento nella collection
         cVBControls.Add oCtr, oFormCtr.Name
      End If
      
      ' distruggo l'oggetto
      Set oCtr = Nothing
      
SaltaControllo:
   Next
   
GestErr:
   If Err.Number = 457 Then
      Resume Next
   End If
End Sub

Private Sub Class_Initialize()
   ' Creo la collezione di controlli
   Set cVBControls = New Collection
End Sub

Private Sub Class_Terminate()
   Dim cCtr As Object
   ' distruggo tutti gli oggetti dei controlli gestiti
   For Each cCtr In cVBControls
      Set cCtr = Nothing
   Next
   Set cVBControls = Nothing
End Sub

