allora...

x grumpy:
Ho ripulito un po il codice.
ho modificato i nomi dei check per assimilarli a quelli dei frame.
usare tante variabili è un mio difetto, ma cmq quelle che vedi sono rimaste li per le prove che facevo.

x andrea:
non ho capito bene l'uso che fai del doevents. Ma non mi funziona lo stesso.



Vi posto il codice:


codice:
Private Sub ImpaginaFrame()

 'Coordinate dei FRAME DATI
  Dim coordx As Integer
  Dim coordy As Integer
  
  Dim i As Integer       
  Dim c As Integer        
  Dim ContMax As Integer
  
  
  'La variabile     'Stato'     è definita all'inizio del modulo con stato (1 to 5) as boolean
  
   'Coordinate dei FRAME (in twips)
    coordx = 10440     
    coordy = 1200          
   
  'Coordinate X e Y
    For i = 1 To 5
      FrameDati(i).Left = coordx   
    Next i
  
    FrameDati(1).Top = 1200
   

  List1.Clear


   'Imposta la visibilità dei frame a true
    For i = 1 To 5
      FrameDati(i).Visible = True
      List1.AddItem "Frame(" & i & ") = " & FrameDati(i).Visible
    Next i
    
    List1.AddItem ""
    
   'Visualizza in list1
    For i = 1 To 5
      List1.AddItem "Frame(" & i & ") = " & FrameDati(i).Visible
    Next i


'Imposta le variabili stato(i) a seconda dei check in GraficoCircuito
    For i = 1 To 5
      If frmGraficoCircuito.Check(i).Value = 1 Then
         FrameDati(i).Visible = True
         stato(i) = True
      Else
         FrameDati(i).Visible = False
         stato(i) = False
      End If
    Next i
   
    
    
   'Sposta i frame in cascata a seconda di quelli visibili / invisibili
    For i = 1 To 5                                 'numero di valori
        If stato(i) = True Then
           FrameDati(i).Top = coordy    'Assegna al form interessato la coordinata piu alta
           FrameDati(i).Visible = True       'Visualizza il form interessato
           coordy = coordy + FrameDati(i).Height + 20    'imposta il Coordy successivo
        Else
           FrameDati(i).Visible = False                  'Visibilità
        End If
    Next i
    
End Sub



ma, ora succede una cosa. Non so se sono io. bah!!

allora:
leggendo questa parte di codice succede che impostando a TRUE la visibilità dei frame, e visualizzando subito dopo la stessa proprietà, il prog. ritorna FALSE !!!!


codice:
   'Imposta la visibilità dei frame a true
    For i = 1 To 5
      FrameDati(i).Visible = True
      List1.AddItem "Frame(" & i & ") = " & FrameDati(i).Visible
    Next i
    
    List1.AddItem ""

Quindi, al problema...se ne è aggiunto un altro !!! eheheh.. bella sta cosa !!!!