Artigo: 190952 - Última revisão: sexta-feira, 12 de Janeiro de 2007 - Revisão: 4.0

Projecto de actualização para utilizar novos controlos do Visual Basic 6.0

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Reduzir tudo

Sintomas

Os seguintes controlos não são automaticamente actualizados quando um projecto de Visual Basic 5.0 é carregado pelo Visual Basic 6.0:
  • Comctl32.ocx
  • Comct232.ocx
  • Mschart.ocx
Tem de actualizar manualmente o projecto para novos controlos do Visual Basic 6.0:
  • Mscomctl.ocx
  • Mscomct2.ocx
  • Mschrt20.ocx
NOTA: O tópico "Actualizar aplicações que utilizar o Windows controlos comuns" na documentação do Visual Basic indica incorrectamente que estes controlos são automaticamente actualizados. Especificamente, são as seguintes instruções de erro:
Quando uma aplicação criada com o Visual Basic versão 5 e utilizar estes controlos - pela primeira vez é carregada no Visual Basic versão 6, aparecerá uma caixa de diálogo informando-o que está disponível uma nova versão, e que os controlos podem ser actualizados. Nessa altura, pode optar por actualizar o projecto para novos controlos ou continuar a utilizar as versões mais antigas do controlo.

Causa

Este comportamento ocorre por predefinição. Os novos controlos não for compatível com versões mais antigas e, de acordo com as regras de COM, foram dada novos nomes de ficheiro e GUIDs de novos. Isto impede que a aplicação quebrar as aplicações existentes que utilizam os controlos mais antigos. Uma vez que os novos controlos têm novos nomes e GUIDs, têm também Typelibs novo. Quando carregar um projecto do Visual Basic, verifica a versão TypeLib. No entanto, o Visual Basic não saberá que os controlos foram actualizados porque o TypeLib para novos controlos têm um GUID diferente do que o TypeLib para os controlos antigos.

Resolução

Para actualizar um projecto para a versão mais recente, actualizar manualmente o projecto e de ficheiros. Para o fazer, siga estes passos:
  1. Abra o ficheiro .vbp num editor de texto, tal como o bloco de notas e alterar as linhas que fazem referência a versão antiga do .ocx à seguinte:
          Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX
          Object={86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCT2.OCX
          Object={65E121D4-0C60-11D2-A9FC-0000F8754DA1}#2.0#0; MSCHRT20.OCX
    
    					
  2. Guarde e feche o ficheiro .vbp.
  3. Abra qualquer ficheiro .frm (ou ficheiro .CTL) que utiliza um destes controlos num editor de texto e alterar as linhas que fazem referência a versão antiga do .ocx à seguinte:
        Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
        Object = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCT2.OCX"
        Object = "{65E121D4-0C60-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCHRT20.OCX"
    
    					
  4. Altere texto todas as referências as bibliotecas antigas de novos nomes de biblioteca. Tem de substituir ComCtlLib Comctl2 e MSChartLib com MSComCtlLib, MSComCtl2 e MSChart20Lib. Por exemplo, alterar:
           ComctlLib.ImageList
    
       To:
    
           MSComctlLib.ImageList
    
    					
  5. Guarde e feche o ficheiro. Quando abrir o projecto no Visual Basic 6.0, utilizará os novos controlos mscomctl.ocx, Mscomct2.ocx ou Mschrt20.ocx.
notas
  • importante Antes de editar o .vbp, .frm ou .CTL ficheiros, deve backup de todos os ficheiros do projecto.
  • Enquanto os objectos listados no passo 1 e 2 são muito semelhantes, não são idênticos e a actualização não funcionará correctamente se cada não for copiada exactamente de acordo com o ficheiro correcto.
  • Se receber uma mensagem indicando que o cabeçalho está danificado quando tenta carregar o projecto, provavelmente efectuou um erro de cópia. Vá para a cópia de segurança e repita o processo.
  • Se pretender continuar a utilizar versões mais antigas destes controlos, Comctl32.ocx e Comct232.ocx estão incluídos no Visual Basic 6.0 produto CD-ROM no directório \OS\System. Mschart32.ocx reside no directório \Common\Tools\VB\Controls.

A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
Palavras-chave: 
kbmt kbcomctrls kbprb KB190952 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 190952  (http://support.microsoft.com/kb/190952/en-us/ )