Newsgroup: it.comp.lang.visual-basic
Titolo: L'istruzione a "0x0fbcc21e" ha fatto riferimento alla memoria a "0x00000054". La memoria non poteva essere "read".

salve,
    ho fatto un programma in VB6 SP6 che usa ado 2.7 per accedere ad un
database in access 2000.
Il programma (gestione di un magazzino) prevede la possibilita' di stampare,
per ogni articolo, "n" etichette con i prezzi, la griglia risultante e'
pressapoco questa:
SELEZIONA    FORNITORE    DESCRIZIONE     PREZZO    NR ETICHETTE
per creare questo tipo di griglia non ho usato un controllo apposito ma, per
il campo SELEZIONA ho usato dei checkbox, per i campi CODICE,DESCRIZIONE E
PREZZO ho usato delle Label e per il campo NR ETICHETTE dei TextBox.
Dopo aver eseguito la query eseguo un ciclo che scorre il recordset dei
risultati.
Ogni volta che carico un record nella griglia carico una nuova serie di
controlli label e textbox.
    J=0
    Do Until RS.EOF
            J = J + 1
            Load chk(J)
            chk(J).Tag = "" & RS!ID_Articolo
            Load txtDitta(J)
            txtDitta(J).Text = "" & RS!NOME_DITTA
            Load txtArticolo(J)
            txtArticolo(J).Text = "" & RS!Descrizione_Articolo
            Load txtGiacenza(J)
            txtGiacenza(J).Text = ValoreNumerico("" & RS!GIACENZA)
            Load txtQuantita(J)
            RS.MoveNext
        End If
    Loop
quando J arriva a 1916 (quando quindi dovrebbe essere aggiunta la 1916a
riga) se sto eseguendo l'eseguibile il programma si chiude mentre se sono in
modalita' debug da Visual Basic mi viene restituito questo errore:
L'istruzione a "0x0fbcc21e" ha fatto riferimento alla memoria a
"0x00000054". La memoria non poteva essere "read".
Avete qualche idea?
Grazie 1000
Paolo

 Avete qualche idea?
Sě, una semplice griglia.


mi sembra giusto aggiungere che per poter scorrere i risultalti ho messo una
ScrollBar Verticale che muove una PictureBox (picDentro) contenuta
all'interno di un'altra PictureBox (picFuori).
L'altezza della PictureBox interna cresce all'aumentare dei risultati ma
quando il programma prova ad assegnare alla proprieta' High un valore piu'
alto di 245745 l'altezza si imposta a 245745 che quindi pare il valore
massimo.
Risulta anche a voi?

 installati. Da che si sei, anche Sistema Operativo e SP installati.
no, non solo, a mè è successo con vb6 sp5 eccetera...
adesso guardo meglio il codice di paolo e torno.
tornato.
a me succedeva perchè non dicevo qual era il container del controllo
caricato, quindi suggerirei a paolo di provare a specificarlo.
-- 
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

 Sě, una semplice griglia.
c'e' un controllo griglia che possa contenere in una cella un "bottone" e in
un'altra un textbox?

 contenuta all'interno di un'altra PictureBox (picFuori).
ehi!
hai copiato i miei sorgenti?
era la stessa identica cosa che avevo fatto io!
esplicita il container dei controlli caricati al run time.


> L'errore mi sa tanto di SP mancanti... Cita versione di VB e SP

Glielo metti sopra al bisogno, un solo controllo per tipo.


ho provato ma non funge... arriva fino a 1939 poi si ferma... (credo che il
sensibile miglioramento sia un caso... probabilmente avevo un blocco note
aperto in meno eheh)
ma la cosa bella da descrivere e' il modo in cui si ferma (mi succede prima
dell'errore riportato nell'oggetto)... (ci provo)
tengo aperto Task Manager e quando VB arriva intorno ai 30MB di utilizzo di
memoria la finestra di Visual Basic si mette in primo piano con evidenziata
in giallo la riga che dovrebbe eseguire (il Load di un controllo)
A quel punto se premo F8 per andare all'istruzione successiva Visual Basic
non avanza... rimane sempre a quell'istruzione.
Se premo F5 mi da l'errore dell'oggetto.
Mi pare che non riesca ad allocare piu' memoria...
Paolo

 Glielo metti sopra al bisogno, un solo controllo per tipo.
scusa ma non ho capito... :(
c'e' un datagrid che se metto un textbox in una cella me lo duplica ad ogni
riga?

 ho provato ma non funge... arriva fino a 1939 poi si ferma...
tutto preso dal riportare la mia esperienza, non avefo posto attenzione, fin
dal principio, allo spropositato numero di controlli che stavi caricando.
il problema direi che è proprio quello.
se non vuoi seguire la strada della griglia, potresti fare questo
ragionamento: non hai bisogno di mettere a video tutti i controlli, ma solo
quelli relativi ai record visibili in quel momento. praticamente dovresti
caricare, al massimo, abbastanza controlli per riempire la picture box, e
cambiare di volta in volta il contenuto degli stessi, in fuzione della
scroll bar.
per essere complicato è sicuramente complicato, ma c'è da trarne qualche
soddisfazione :-)


 ad ogni riga?
No.
Sul data-eccetera mi sono già espresso, comunque non credo che il controllo
che mostra i dati sia determinante, perchè non lo toccherei proprio.
Lasciamo che il controllo mostri i dati, tutti e quanti ne vuoi.
Veniamo ai _tuoi_ controlli, qualunque sia l'uso che ne fai:
Quanti bottoni ti servono, in un certo istante? Per me uno solo, quello
relativo alla cella che t'interessa. Crei in bottone nel form, invisibile,
lo dimensioni e lo posizioni in modo che stia sulla cella desiderata e lo
rendi visibile. Idem per gli altri 2/3 tipi di controlli. Non concepisco
proprio l'idea di avere 1900*4 controlli su un formo, proprio no.

 ha scritto nel messaggio
news:4059...@x-privat.org...

La scgrid
una volta c'era pure la versione free che permetteva di fare quasi le stesse
cose di quella a pagamento con la differenza che bisognava lavorare un po'
di piů col codice
www.scgrid.com
-- 
Le persone non sono il proprio comportamento: devi sempre andare oltre,
essere flessibile, capire il punto di vista degli altri, interpretarne i
comportamenti ed intuirne le esigenze.
Per rispondere in privato elimina
dall'indirizzo "togliquesto"
MasterDavidex
David Ruscelli