PROJETO PERDE REFERENCIA A OCX 64 - 32 BITS

FBGSYSTEMS 26/04/2013 12:03:56
#422553
Boa tarde pessoal do Vb Mania.
Estou tendo um problema bem chato ultimamente.
Minha principal máquina para desenvolvimento é um Windows 64 bits.
Então ok.
Porem quando vou fazer serviço interno utilizo meu notebook com Windows 32 bits.
E sempre que abro o projeto ele perde a referencia a uma OCX em especifico (MSCOMCTL.OCX), que utilizo para criar listview. Então tenho que dar ok em várias mensagens, e mesmo apos setar o caminho deste componente, em alguns forms meus controles listview somem e tenho que recoloca-los.

E nao é sempre no mesmo form que o list some, isso varia.

Alguem ja passou por isso e sabe como resolver ?


Agradeço desde ja.
ROMERO.KCOAL 26/04/2013 13:09:51
#422562
bem.. eu tenho este problema quando faço uma compilação de um OCX meu..

como funciona o vb a suas Referencias aos controles?

bem se nao sabe vou tentar explicar como eu aprendi

Dentro do arquivo de projeto o vb guarda a referencia ao controle

Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.1#0; MsComCtl.ocx

esta referencia depende de cada controle e pode ser modificado dependendo do controle utilizado...

para referenciar um outro controle... vai na aba de controle e clica em componentes... na guia de componentes selecione o controle que vc deseja... que neste caso é o Microssoft Windows Common Control 6 (se nao me engano)

Salve o projeto com outro nome... abre este projeto salvo e copie a referencia deste arquivo e cole o projeto principal
obs.. cole subistituindo a referencia anterior... uma boa pratica é ter um backup deste aquivo...

ops... abra com o bloco de notas...

isso ocorre porque os ocx sao os mesmo.. porem com compilação direfente e isso muda a referencia no registro do OCX no windows.

Espero ter ajudado...
EPISCOPAL 27/04/2013 09:10:22
#422598
Resposta escolhida
é por isso que eu fiz de tudo pra procurar usercontrol que substitui os controles do vb6, esse negocio da dor de cabeça, ainda mais se eu fazer estes procedimentos em todos os forms, não é só na aplicação principal nao viu???
ROMERO.KCOAL 30/04/2013 10:45:05
#422716
para avitar este problema... vc pega as OCX e coloca em abas os PCs a mesma... ou seja.. existe uma que pode estar com uma OCX mais atualizada... e neste caso a que esta com a OCX nemos atualizada passa a receber a OCX atualizada para assim evitar o problema...

e como vê isso?

Versão atualizada
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.1#0; MsComCtl.ocx
Versão mais antiga
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.ocx

Se olhar-mos o chave der referencia é a mesma... porem o OCX é mais novo no primerio caso... isso aconteceu recentemente no PC do patrao que é W8 e no meu que é W7.. Atualizei meu PC e pronto.. nao tenho mais este problema....

Ocx é algo gem complicado.. e para entendo-lo é mais facil aprender a faze-lo... coisa que ja domino um pouco... entao vou aqui tentar ajudar...

quando vc cria um OCX o VB.. ou melhor dizendo... o Windows... precisa dar a ele uma chave de referencia... no vb faz isso de forma automatica... e vc tem 2 opções... uma é criar uma nova chave e remover a chave anteior do registro.. outra é manter a masma chave e definir uma nova versao... que no caso do exemplo anterior... é 2.1... assim uma ocx mais nova... substitui a mais velha de forma automatica.. porem a mais velha nao reconhece e ai começa os problema aqui vivenciados... acredito que quando abre em uma das maquinas ela nao da esse problema... e o problema só ocorre quando vc traz de volta o projeto...

Espero que tenho sido claro nas explicações....
Tópico encerrado , respostas não são mais permitidas