Ho diverse matrici dinamiche, prima di trasferire i relativi valori devo controllare che la singola matrice sia carica; ciò per evitare il conseguente errore.
Come devo fare ?
Ho diverse matrici dinamiche, prima di trasferire i relativi valori devo controllare che la singola matrice sia carica; ciò per evitare il conseguente errore.
Come devo fare ?
LM
Non ci ho capito molto... spiega le espressioni in grassetto...Originariamente inviato da LMondi
Ho diverse matrici dinamiche, prima di trasferire i relativi valori devo controllare che la singola matrice sia carica; ciò per evitare il conseguente errore.
Come devo fare ?
Amaro C++, il gusto pieno dell'undefined behavior.
Se la matrice non comprende valori nel tentativo di trasferire i dati in una LV
itmX.SubItems(3) = RigidTelaiX(CountRigX - 1)
emerge l'errore: "Indice non compreso nell'intervallo"
Spero che così sia chiaro.
LM
La funzione in questione restituisce True se l'array che le passi è inizializzato, False in caso contrario.codice:Public Function IsArrayInitialized(ByVal arr As Variant) As Boolean Dim dummy As Long Err.Clear If Not IsArray(arr) Then Err.Raise 5 On Error Resume Next dummy = UBound(arr) If Err.Number = 0 Then IsArrayInitialized = True End Function
Amaro C++, il gusto pieno dell'undefined behavior.
Grazie, molto gentile.
Per terminare, la funzione come la richiamo ?
LM
codice:'... Dim tuoArray() As Integer '... If IsArrayInitialized(tuoArray) Then 'l'array è inizializzato, fa quello che deve fare Else MsgBox "Panico!", vbCritical End If
Amaro C++, il gusto pieno dell'undefined behavior.
Ho risolto; posto le Sub complete, magari può servire a qualcuno degli amici del forum:
codice:Public Function IsArrayInitialized(ByVal arr As Variant) As Boolean Dim dummy As Long Err.Clear If Not IsArray(arr) Then Err.Raise 5 Or 9 Or 10 On Error Resume Next dummy = UBound(arr) If Err.Number = 0 Then IsArrayInitialized = True End Function '------------------------------ Private Sub CmdCalcola_Click() btAttiva = 0 Set itmX = LvDati.ListItems.Add() itmX.SmallIcon = 1 If IsArrayInitialized(Piani) = True Then itmX.Text = Piani(CountPiani - 1) Else btAttiva = 1: Txt1(0).SetFocus: Call Verifica: Exit Sub If IsArrayInitialized(TelaiX) = True Then itmX.SubItems(1) = TelaiX(CountTelX - 1) Else btAttiva = 1: Txt1(1).SetFocus: Call Verifica: Exit Sub If IsArrayInitialized(TelaiY) = True Then itmX.SubItems(2) = TelaiY(CountTelY - 1) Else btAttiva = 1: Txt1(2).SetFocus: Call Verifica: Exit Sub If IsArrayInitialized(RigidTelaiX) = True Then itmX.SubItems(3) = RigidTelaiX(CountRigX - 1) Else btAttiva = 1: Txt1(3).SetFocus: Call Verifica: Exit Sub '.... .... .... End Sub '------------------------------------------------ Sub Verifica() Dim i As Integer If btAttiva = 1 Then MsgBox "Impossibile procedere; inserire i dati mancanti !", vbQuestion, "Calcoli ..." i = LvDati.SelectedItem.index LvDati.ListItems.Remove (i) LvDati.Refresh End If End Sub![]()
LM
Non c'è di che.Originariamente inviato da LMondi
OK. ho capito. Ti ringrazio ancora.![]()
Amaro C++, il gusto pieno dell'undefined behavior.
per evitare l'errore
http://forum.html.it/forum/showthrea...ight=safearray
Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te