PROJETO PERDE REFERENCIA A OCX 64 - 32 BITS
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.
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.
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...
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...
é 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???
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....
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