Newsgroup: it.comp.lang.visual-basic
Titolo: VB6 datagrid scroll: aiuto....

Ciao,
in VB6 ho una datagrid associata ad una tabella dati.
Nel form possono essere visualizzate 24 righe. E' abilitata la possibilità 
di aggiungerne di nuove ed ho scelto di mostrare sempre lo scroll 
orizzontale e verticale.
Se vengono aggiunti nuovi records, tutto funziona fino al 24°.
IL PROBLEMA è quando si tenta di aggiungere il 25° (che dovrebbe produrre lo 
scrolling verticale).
Se lo faccio col programma già installato (col pacchetto di installazione), 
molto semplicemente il programma si CHIUDE senza dare messaggi di errore e 
la riga non viene aggiunta.
Se lo faccio nell'ambiente di programmazione, viene aggiunta la 25° riga (o 
la 26° ecc...), MA la riga viene aggiunta dopo lunga attesa: ho controllato 
cosa succede nell'attesa: semplicemente vengono ripetuti 445 volte gli 
eventi beforeinsert e afterinsert....
PERCHE'?
Che posso fare per rendere possibile aggiungere una riga oltre le righe 
visibili?
Ringrazio.. con molte speranze.
Romano

 visibili?
Se la datagrid ti serve solo come visualizzazione e non devi scrivere
dentro puoi usare una MSFlexGrid o una listview. Ma imho devi risolvere il
problema a monte, non ricordo di un bug del genere, quindi c'è qualcosa nel
codice.

grazie Andrea.
Nelle routines di data grid non ci sono loops.
Solo in OnAddNew c'è del codice che immette valori predefiniti in alcuni
campi del record che è stato aggiunto. Fino al completamento dello spazio
disponibile nel datagrid, posso aggiungere tutti i record che voglio e i
records ed i relativi valori predefiniti vengono correttamente inseriti.
E' quando dovrebbe in entrare in funzione lo scroll verticale (per fare
posto al nuovo record) che tutto si blocca, anche se dò il refresh e scrivo
in onaddnew: DataGrid.Scroll -1, UltRec (e con questo ottengo, che, per
alcuni secondi la barra dello scroll verticale tremola.... ma rimane in
alto... alla fine viene aggiunto il nuovo record, ma col mouse la barra
dello scroll non si muove e, per di più, non posso più aggiungere nuovi
record).
Forse ci vuole altro codice per forzare lo scrolling?
Comunque, non basta impostare il datagrid con scroll automatico o con i 2
scroll predefiniti.
Sto facendo tanti tentativi, ma non ne vengo a capo...
Ora provo con bookmark.
(per curiosità, ho inserito un debug.print in tutti gli eventi di datagrid 
poi ho aggiunto un record; risultato: la metà degli eventi viene utilizzata, 
l'evento mousemove viene attivato 90 volte di seguito, poi 15, poi 20, 
infine l'evento rowcolchange si attiva 24 volte di seguito (quanti sono i 
record)... Boh...)
Ciao
Romano 

 Ora provo con bookmark.
Sui recordset ci si muove anche con i bookmark per andare ad un record
specifico, e dovrebbe funzionarti anche col datagrid.
Prova a postare un po' di codice se non risolvi.

Ti ringrazio per l'attenzione. Ho risolto per una via ... traversa: ho 
modificato l'aspetto del form che contiene il datagrid per far in modo che 
vengano visualizzati fino a 32 records... e questi  mi bastano... almeno per 
il momento...
Il datagrid è veramente complesso... spero di riuscire a capirne lentamente 
il funzionamento.
Ancora grazie,
Romano