Newsgroup: it.comp.lang.visual-basic
Titolo: strano errore 381

Su una form ( che usa l'ocx  mscomct2.ocx ) c'è il pulsante NUOVO : se lo 
clicchi  si apre un'altra form (che usa il controllo tabctl32.ocx) .
Su un certo PC ( e solo su questo) mi capita l'errore RTE 381 "Invalid 
property array index" quando clicco su NUOVO.
L'errore succede prima di usare il controllo tabctl32.ocx , in quanto se in 
un PC dove il programma funziona  cancello il controllo tabctl32.ocx , 
compare l'errore  " controllo tabctl32.ocx mancante".
Se tale  tabctl32.ocx lo cancello sul pc con il problema , l'errore che 
compare è sempre RTE 381 , quindi l'errore compare prima di chiamare 
tabctl32.ocx
Cosa si può dedurre da cio?
saluti e grazie

 ha scritto nel messaggio 
news:4c815088$0$31376$4faf...@reader1.news.tin.it...

Purtroppo senza vedere i sorgenti io non direi nulla in più di quanto non 
abbia già dedotto tu.
Prova a postare il codice dell'evento click del pulsante "nuovo" e quello 
degli eventi (Initialize, Load, Activate, etc...) del form secondario, 
quello che contiene il controllo tabctl32.
Bye
Raf 

 quello che contiene il controllo tabctl32.
ma il codice è corretto , funziona ovunque tranne su un solo pc
Vorrei sapere la logica di XP quando getsisce gli OCX  che si trovano in 
C\windows\system32
tu la sai questa logica ?
ciao 


Aspetta... in generale non è affatto detto che un programma sia
*corretto* solo perché *funziona*, a maggior ragione se c'è un pc su
cui invece va in errore.
In ogni caso, visto che sul pc "incriminato" il run time error esce
con o senza tabctl32, mi sembra che tale ocx non c'entri direttamente.
Ripeto, posta un po' di codice se no si fa fatica a capire.
Ciao

"Alimondi" ha scritto

E' complessa. E non cerca gli OCX solo lì. Fai un giro su
quel PC, vedi se ci sono altre versioni di quell'OCX in giro
o delle DLL da cui dipende (dependency walker), verifica
le versioni presenti sugli altri PC e tanto per andare sul
sicuro aggiornalo all'ultima versione (6.1.97.82, AFAIK).
Se anche il problema non fosse lì (ma sento una strana
perturbazione nella Forza...) almeno avrai eliminato una
possibilità.
Bye, G.


Supponiamo che il problema sia la ocx che nomini. Non ne abbiamo la 
certezza, visto che non vuoi farci vedere cosa e come fai. Personalmente 
non credo il problema sia legato alla ocx cui ti riferisci. Ti illustro 
le prime 3 cose da fare in questi casi.
------------------------
1) Verificare che l'ocx nel pc incriminato sia la stessa che utilizzi tu 
nel tuo. Cercala nel disco e verifica che la versione sia la stessa 
(alt/invio in esplora riZorZe) rispetto a quella che tuilizzi tu. A 
proposito... Per distribuire il programma non hao creato un installer 
con le librerie necessarie? Che magari controlli eventuali conflitti di 
versione?
- Molti programmatori, lameracci pressappochisti e ricchioni, copiano e 
registrano ocx e dll come se fossero noccioline in una gabbia di 
scimmiette; questo NON VA BENE perché si dovrebbe sempre verificare la 
presenza nella cartella di sistema di una dll/ocx identica, controllarne 
la versione e sostituirla solo in caso di effettiva necessità. Ma tanto 
è... La madre dei cretini è sempre incinta, si sa.
Verificato ed eventualmente corretto il problema di conflitto di 
versione, se ancora non va è possibile che ci siano più ocx registrate 
con lo stesso nome, magari in altre parti del disco. Quindi tu vedi una 
ocx in /windows/system32, ma in realtà il sistema ne sta usando 
un'altra.
------------------------
2) Assicurarti che l'ocx in uso sia quella che intendi tu:
A) accertati che nella /windows/system32 ci sia il file tabctl32.ocx
B) cercare nel disco eventuali altre copie del file tabctl32.ocx
se ci sono altre copie, apri una finestra doc (prompt di comandi) e 
scrivi
regsvr /u tabctl32.ocx
- Questo elimina i dati di registrazione della ocx tabctl32.ocx dal 
registro
C) Cancellare tutte le tabctl32.ocx presenti nel disco ad eccezione di 
quella presente in /windows/system32
D) Torna nella finestra dos e digitare
cd \windows\system32
regsvr tabctl32.ocx
- questo registra la ocx tabctl32.ocx per l'utilizzo in uindos
------------------------
3) Installi VB nel pc posseduto dal demonio e vedi cosa succede 
realmente.
Se ancora non va postaci il codice che cerchiamo di capire meglio.
Ciao cia'
-- 
-> GbC|
www.gbcweb.com
www.chiappori.com
 

 ha scritto nel messaggio 
news:4c815088$0$31376$4faf...@reader1.news.tin.it...

A me succedeva qualcosa di simile col graph32.ocx  sua alcuni andava su 
altri no......
Ho risolto installando l'OCX direttamente nella directory del programma, 
penso
che il programma cerchi prima nella directory corrente poi succesivamente
in System  e poi in windows