Newsgroup: it.comp.lang.visual-basic
Titolo: Registrazioni OCX

Puntualmente mi succede una cosa che a dir poco mi manda in bestia e come
una scema non riesco a capire perchč!
Esempio apro un mio progetto in VB6 vado su componenti e dal tasto "sfoglia"
scelgo un file .ocx ( tipo vertmenu.ocx)
Salvo il  progetto riapro e VB& mi dice che non riesce a trovare e mi fa
vedere il form senza l'oggetto che avevo creato.
Secondo problema:
Metto su un form una serie di Frame ed alcuni sono dentro ad altri frame.
Alcune volte mi succede che in esecuzione i frame piů interni non si
vedono!!!
Uff perchč succede ciň?
Debby  ---)@
Capra ma testarda

 Capra ma testarda
Uno spunto, magari banale, ma ... non si sa mai.
L'OCX è correttamente registrato sul sistema? (se no, a quanto ne so
io lo si fa con "regsvr32")
Te lo dico perché mi pare di capire che potrebbe non esserlo, se pigi
"sfoglia".
Infatti, dallo 0,1% che ho compreso della gestione di librerie e
componenti, se un componente è correttamente registrato sul sistema
esso (componente) COMPARE nella lista, non devi pigiare sfoglia.
Guarda, io da "smanettone" ho risolto così:
- svolgo tutta la programmazione in un albero di sottocartelle della
stessa cartella radice, che prima di iniziare a programmare mappo come
disco ("net use" se la uso via rete, "subst" se in locale) ... il
disco è sempre quello, io ho scelto "X";
- ovviamente, il "disco" contiene tutte le librerie che scarico o
scrivo;
- nella cartella ho inserito innanzitutto un file BAT che registra
tutti i componenti che servono alla mia applicazione (con regsvr32);
NB: utilizzando il percorso che comincia con X:\ per registrarli.
In questo modo mi sono spariti TUTTI i problemi che descrivi tu (...
piccola pausa per toccare il monolite di ferro di un metro cubo che mi
sono fatto costruire e tengo sempre a portata di mano ...), che a me
derivavano soprattutto dal programmare su più PC.
Ciao e scusa se mi sono intromesso pur non avendone la ... cultura! E'
che a volte le soluzioni degli smanettoni offrono spunti interessanti
... :-)
Filippo

 [...]
..non mi piace però in caso di emergenza, in rete, può sempre essere
un'idea.. Grazie!
-- 
Ciao,
    Diego
----------------------------------------------
Diego Mazzaro
Il mio sito: => 
http://www.mazzaro.net
 <=

 gente fa domande poste e riproposte migliaia di volte...

 Filippo

 -Se ha problemi.. ..fermati qua e fammi sapere.. ..comunque se non ce
l'hai
[cut]

 Debby ----)@
I due (VB e 
VB.NET
) sono molto diversi e tra l'altro nessuno dei due puň far
tutto ciň che si fa con l'altro...
Io ti direi di passare a 
VB.NET
.. ..ma tieni presente che poi se vuoi usare
un vecchio caro Controllo Activex ci devi girare un po' intorno e non č come
in VB6..
Se programmi per professione direi che li devi conoscere entrambi, se
programmi per diletto fatti una bella botta di cultura sulla programmazione
ad oggetti e poi parti con il .NET
Purtroppo io torno in rete Lunedě...
    Ciao, Diego
PS: se mi mandi l'ocx controlla il mio indirizzo email prima di inviare..


 In effetti il  file Form1.log non c'è
Impossibile, il file .log c'è per forza.
E... a proposito: cosa c'è scritto in 'sto stramaledetto file .log?
Le cose che dici che ti accadono non hanno alcun senso: o non presti
attenzione a verbi e "non" nelle tue frasi oppure non la conti giusta :) nel
senso che non indichi i passaggi corretti che fai.
Ciao
--
Math Parser : 
http://www.neodatatype.net
Sito Comune : 
http://www.it-lang-vb.net

 30?
Lascia perdere i libri, specie quelli economici.
Le modalità di funzionamento di COM non le troverai nei libri, già si fa
fatica a trovare info in MSDN...
E non è affatto semplice comprenderne tutte le sfaccettature.
Partiamo dai fondamentali:
una dll ActiveX o un OCX sono dei contenitori di classi.
Ogni classe, per ogni versione (dove con "versione" si intende "compilazione
senza compatibilità binaria con la precedente) è caratterizzata da un CLSID
(quei numeri da 16caratteri tra le graffe) e un ProgID
(NomeProgetto.NomeClasse).
Ora, ogni dll/ocx hanno definito le funzioni DLLRegisterServer() che una
volta richiamate non fanno altro che inserire nel registro di windows per
ogni classe:
- ProgID
- CLSID
- Percorso del file
- Versione del file
VB, quando chiedi i componenti o i riferimenti va nel registro e ti elenca
tutte le dll/ocx che trova registrate.
Quando ne spunti una, VB si cerca le classi appartenenti a quel progetto e
ti permette di utilizzarle nel tuo.
La registrazione avviene in modo alternativo (ma una passa tranquillamente
sopra all'altra):
- Tramite il setup
- Tramite la compilazione di VB (VB compila e poi registra la dll/ocx)
- Tramite il comando regsvr32.exe, che altro non fa che richiamare la
succitata DLLRegisterServer()
Una volta registrato in uno di questi modi VB ti elenca il tuo file, se non
è in elenco non è registrato, se è in elenco è inutile ri-registrarlo.
Adesso, venendo al tuo problema, bisognerebbe avere l'esatto elenco delle
azioni che fai, perchè se VB ti permette di inserire un oggetto in un
progetto, salvando e ricaricando questo progetto è pressochè impossibile che
poi non riconosca più l'oggetto.


[cut]

 Impossibile, il file .log c'è per forza.
[cut]

 che ho derivano da quell'episodio.
Beh, non è affatto detto, anzi, il problema mi sembra di tutt'altra natura,
comunque bisognerebbe sapere quali erano queste dll.
Comunque, prima di tutto vorrei che tu postassi il contenuto di questo file
.log, cercalo bene che c'è! E' nella stessa cartella del form (magari se hai
abilitata l'opzione di nascondere le estensioni o i files di sistema
toglila).
Poi, magari in un altro trhead, non sarebbe male se scrivessi passo passo in
modo *assolutamente* chiaro le operazioni che fai per riprodurre il
problema, e se questo riguarda un solo componente in tuo possesso potresti
metterlo in rete o inviarlo per posta a chi vuole darti aiuto, così si può
verificare se il problema è nella tua installazione (tutt'altro che
improbabile, ma non mi pare il tuo caso) o cosa.
Hai provato a fare un'installazione di VB di tipo "riparazione"?


 .log, cercalo bene che c'č!
dovrebbe. pero' in effetti, fra ieri e oggi ho appena reinstallato tutto a
partire da win, dopo i soliti messaggi di errore licenza, almeno una volta
sono sicuro che il .log *non* c'era...
ciao, j.

 ha scritto nel messaggio
news:1uvYb.331510$_P.11...@news4.tin.it...


 Hai provato a fare un'installazione di VB di tipo "riparazione"?
a settembre ? in ginocchio sui ceci ? :)