calabar
19-05-2006, 18:48
Il problema all'apparenza è semplice, ma non riesco a far funzionare una semplice funzione che deve prendere come parametro un datagrid.
Il nocciolo del codice è questo (ovviamente la funzione è più complessa): Private Sub Form_Load()
setColumnWidth(DataGrid1,1000,1)
End Sub
Private Sub setColumnWidth(dataGr As Control, baseValue As Integer, col As Integer)
dataGr.Columns(col).Width = baseValue - 220
End Sub Ho provato ad impostare dataGr come Object, come Control, come dataGrid, ma nulla...
Se provo costruire la funzione così come la vedete, l'analizzatore sintattico di VB mi da errore (riga rossa per il codice di richiamo), pretendendo un = dopo il richiamo della funzione (per esempio con setColumnWidth(DataGrid1,1000,1) = variabileacaso non da più l'errore).
Se invece costruisco la funzione con solo dataGr come parametro, Private Sub setColumnWidth(dataGr As Control) nessun errore viene segnalato in scrittura, ma in compilazione mi segnala "Type mismatch".
Da notare che per sicurezza ho anche provato a controllare che il datagrid passato come parametro reale fosse effettivamente un oggetto (tramite la funzione isObject, e il risultato è positivo).
La documentazione e il manuale non mi hanno aiutato granchè...
Dove sta la magagna?
Grazie!
Il nocciolo del codice è questo (ovviamente la funzione è più complessa): Private Sub Form_Load()
setColumnWidth(DataGrid1,1000,1)
End Sub
Private Sub setColumnWidth(dataGr As Control, baseValue As Integer, col As Integer)
dataGr.Columns(col).Width = baseValue - 220
End Sub Ho provato ad impostare dataGr come Object, come Control, come dataGrid, ma nulla...
Se provo costruire la funzione così come la vedete, l'analizzatore sintattico di VB mi da errore (riga rossa per il codice di richiamo), pretendendo un = dopo il richiamo della funzione (per esempio con setColumnWidth(DataGrid1,1000,1) = variabileacaso non da più l'errore).
Se invece costruisco la funzione con solo dataGr come parametro, Private Sub setColumnWidth(dataGr As Control) nessun errore viene segnalato in scrittura, ma in compilazione mi segnala "Type mismatch".
Da notare che per sicurezza ho anche provato a controllare che il datagrid passato come parametro reale fosse effettivamente un oggetto (tramite la funzione isObject, e il risultato è positivo).
La documentazione e il manuale non mi hanno aiutato granchè...
Dove sta la magagna?
Grazie!