Sie sind auf Seite 1von 8

Demonstra Passo a passo: Atualizando um aplicativo Visual Basic 6.

0 para a verso mais recente do Visual Basic


Visual Studio 2008 Outras verses

Esta explicao passo a passo, voc ir atualizar um aplicativo de exemplo do Visual Basic grficos para Visual Basic 2008. Alm de ilustrar o processo atualizao, esta explicao passo a passo reala as diferenas em arquiteturas de elementos grficos entre o Visual Basic 6.0 e o Visual Basic 2008. Isso tambm deve servir como uma introduo para lidar com problemas de arquitetura em seus aplicativos. O aplicativo de exemplo nesse caso um formulrio simples que contm dois botes, uma caixa Imagem, um timer, e um controle de imagem ocultos. Embora no seja tpica da maioria dos aplicativos que voc desejar atualizar, ele apresentar vrias questes desafiadoras que voc pode encontrar ao atualizar seus prprios aplicativos.

Observao:
Este explicao passo a passo requer que o Visual Basic 6.0 tenha sido instalado em seu computador de desenvolvimento.

Para criar o aplicativo Visual Basic 6.0


1. Abra o Visual Basic 6.0. No menu File, escolha New Project. 2. Na caixa de dilogo New Project, escolha Standard EXE, e clique em OK. 3. Adicionar um PictureBox o controle para o formulrio e dimensione-o para preencher a maior parte do formulrio, deixando espao na parte inferior. 4. conjunto o AutoRedraw propriedade para True, o DrawStyle propriedade para 0Solide o FillStyle propriedade para 0-Solid. 5. Adicionar dois CommandButton controles abaixo a PictureBox controle. 6. selecionar a primeira CommandButton, e conjunto o Name propriedade para ClearPictureBox e o Captionpropriedade para Clear. 7. selecionar o segundo CommandButton, e conjunto o Name propriedade para ShowImage e o Captionpropriedade para Show Image. 8. Adicionar um Image o controle para o formulrio e defina o Name propriedade para sourceImage e o Visiblepropriedade para False. 9. conjunto o Picture propriedade das Image controle para uma imagem de bitmap qualquer. Voc pode usar uma das imagens na sua pasta Minhas Imagens. 10. Adicionar um Timer controle ao formulrio. conjunto o Enabled propriedade para False e o Interval propriedade para 25.

11. Clique duas vezes no formulrio para abrir o Editor de Cdigo, e digite o cdigo a seguir.
12. Option Explicit 13. Private LeftPos As Double 14. 15. Private Sub ClearPictureBox_Click() 16. Picture1.Cls 17. End Sub 18. 19. Private Sub ShowImage_Click() 20. LeftPos = 1 21. Me.Timer1.Enabled = True 22. End Sub 23. 24. Private Sub Timer1_Timer() 25. 26. If LeftPos <= 0 Then 27. Me.Timer1.Enabled = False 28. Picture1.Print "Visual Basic ROCKS!" 29. Else 30. LeftPos = LeftPos - 0.01 31. Picture1.Cls 32. Picture1.PaintPicture sourceImage, LeftPos * _ 33. Picture1.Width, 0 34. End If 35. End Sub

36. Pressione F5 para executar o aplicativo. Clique nos botes para observar o comportamento, e depure o cdigo para ver como ele funciona. 37. No menu File, escolha Save Project As. 38. No Salvar arquivo sistema autnomo caixa de dilogo , salve o formulrio sistema autnomo PicForm.frm e salve o projeto sistema autnomo Drawing.vbp.

Para executar o Assistente de Atualizao


1. Abra Visual Basic 2008. No menu File, escolha Open Project. 2. Na caixa de dilogo Open Project, localize e abra o arquivo Drawing.vbp. Isso inicia o Assistente de Atualizao do Visual Basic. A primeira pgina do assistente contm uma explicao sobre o que o assistente ir fazer. 3. clicar Next para ir para a segunda pgina do assistente. Esta pgina apresenta opes para atualizar; nesse caso no h opes aplicveis disponveis. 4. clicar Next para ir para a terceira pgina do assistente. clicar Next para aceitar o localizao padro para o novo projeto ou digite uma localidade diferente. A localidade padro uma nova pasta imediatamente abaixo pasta do projeto Visual Basic 6.0. Se solicitado para criar uma nova pasta, escolha Yes. 5. Na pgina do Assistente de quarta, clicar Next Para iniciar a atualizao.

Quando a atualizao concluda, o Assistente fecha, e o novo projeto aparece na Solution Explorer.

Para exibir os resultados de atualizao


1. No Solution Explorer, selecione _UpgradeReport.htm e clique duas vezes nele para abrir o relatrio de atualizao. Observe que o relatrio no mostra nenhum problema global que precise ser enfocado, para PicForm.vb ele mostra seis erros e nenhum aviso.

Observao:
Se houvessem avisos, eles tambm seriam exibidos na Lista de tarefas janela sistema autnomo itens UPGRADE_WARNING. Avisos so para cdigo que podem causar diferenas sutis no comportamento em tempo de execuo do seu aplicativo. Clicando duas vezes um UPGRADE_WARNING na janela Task List leva voc diretamente para o cdigo que talvez precise ser modificado. 2. Expanda a seo PicForm.vb clicando no sinal de mais na coluna New Filename. Isso exibe uma lista detalhada dos problemas de atualizao para o formulrio. Observe que os problemas se aplicam a trs locais diferentes: the ClearPictureBox_Click procedimento, oTimer1_Timer procedimento e o layout do formulrio. Voc pode clicar no link Description para exibir um tpico da Ajuda explicando cada questo. As questes de layout neste caso no requerem qualquer ao; a verificao da Ajuda revela que eles so para duas propriedades do Visual Basic 6.0 PictureBox controle que no so mapeadas para equivalente Visual Basic 2008 Propriedades.

Para corrigir o erro ClearPictureBox_Click


1. In O gerenciador de solues, selecionar PicForm.vb. Sobre o Modo de exibio menu, escolher Cdigo. 2. No Editor de cdigo, selecionar o ClearPictureBox_Click procedimento.

Dica:
Existe um comentrio UPGRADE_ISSUE adicionado ao procedimento. Se voc rolar at o final do comentrio, voc pode clicar no link que exibe o respectivo tpico da Ajuda. Problema de todos os sistema autnomo (exceto para questes de layout) so adicionadas sistema autnomo comentrios de cdigo durante uma atualizao, incluindo comentrios UPGRADE_NOTE explicando o que aconteceu durante a atualizao; eles no aparecem no relatrio de atualizao. 3. Adicione o seguinte cdigo ClearPictureBox_Click procedimento: VB

Dim g As Graphics = Picture1.CreateGraphics() g.Clear(Picture1.BackColor) g.Dispose()

O nico erro no procedimento original o Picture1.Cls() telefonar de mtodo. In Visual Basic 2008, sistema autnomo controles intrnsecos no fornecem acesso direto ao seu desenho superfcies com mtodos (sistema autnomo no Visual Basic 6.0). Todas as operaes de elementos grficos so tratadas com um objeto especial do tipo Graphics. Voc pode acessar a superfcie de desenho de um controle chamando o CreateGraphics()mtodo para obter uma instncia de um Graphics objeto. 4. Exclua ou comente a linha original, Picture1.Cls().

Para corrigir os erros Timer1_Timer


1. No Editor de cdigo, selecionar o Timer1_Tick procedimento.

Observao:
O Timer event from the Visual Basic 6.0 Timer control is upgraded to the Tick event of the Visual Basic 2008 Timer component. O Relatrio de Atualizao mostra o antigo nome do evento; o Editor de Cdigos usa o novo nome do evento. 2. No incio da funo, adicione o seguinte cdigo: VB
Dim g As Graphics = Picture1.CreateGraphics()

sistema autnomo com o procedimento anterior, sistema autnomo erros aqui comeam com a falta de umGraphics objeto. 3. Localize o primeiro UPGRADE_ISSUE, o Picture1.Print mtodo. Adicione o seguinte cdigo: VB
g.DrawString("VB .NET ROCKS!", Me.Font, New SolidBrush( _ Color.Yellow), 0, 0)

The DrawString mtodo para o Graphics objeto substitui o Visual Basic 6.0 Print mtodo. Onde o Print mtodo toma um nico Text argumento, DrawString tambm leva argumentos especificando

o Font, um Brush objeto que especifica um Color objeto e as coordenadas para desenhar o texto inicial. 4. Exclua ou comente a linha original, Picture1.Print("Visual Basic ROCKS!"). 5. Localize a prxima UPGRADE_ISSUE, Picture1.Cls(). Substitua o cdigo com o seguinte: VB
g.Clear(Picture1.BackColor)

6. Localize o ltimo UPGRADE_ISSUE, Picture1.PaintPicture. Adicione o seguinte cdigo: VB


g.DrawImage(sourceImage.Image, CSng(LeftPos * Picture1.Size.Width), _ 0)

Nesse caso, a DrawImage mtodo para o Graphics classe substitui o PaintPicture mtodo. 7. Exclua ou comente a linha original, Picture1.PaintPicture(sourceImage, LeftPos * VB6.PixelsToTwipsX(Picture1.Width), 0). 8. No final do procedimento, adicione o seguinte cdigo: VB
g.Dispose()

The Dispose mtodo necessrio para liberar os recursos de memria associados a Graphics objeto.

Para testar o aplicativo


1. No menu Debug, escolha Start.

Observao:
Se voc for solicitado para salvar o arquivo de soluo, clicar Salvar para salvar o arquivo e executar o aplicativo. 2. Clique no boto ShowImage.

Voc observar que a imagem cintila ao desenhar. Isso devido a toda a rea ser clareada antes de cada imagem atualizada ser desenhada na tela.

Modificando Posteriormente o Aplicativo


A soluo aqui desenhar apenas as partes necessrias da tela, em vez da rea inteira representada pelo Graphicsobjeto. Voc desejar certificar-se de que quando a imagem for desenhada na tela, quaisquer pixels restantes na tela da ltima telefonar para DrawImage() so obscurecidos com a cor do plano de fundo. Desde que a imagem est movendo da direita para esquerda, voc s tem que obscurecer os pixels adicionais para a direita da figura.

Para corrigir o problema de cintilao da tela.


1. No Timer1_Tick procedimento, substitua o g.Clear(Picture1.BackColor) mtodo com o cdigo a seguir: VB
Dim imageWidth As Integer = sourceImage.Image.Width Dim imageHeight As Integer = sourceImage.Image.Height Dim left As Double = imageWidth + (Picture1.Size.Width * LeftPos) g.FillRectangle(New SolidBrush(Me.BackColor), _ New Rectangle(left, 0, 6, imageHeight))

Em vez do Clear mtodo, use o FillRectangle mtodo, usando a cor do plano de fundo para obscurecer quaisquer pixels restantes para a direita da imagem corrente sendo desenhada. Para fazer isso, voc primeiro precisa calcular a coordenada da extrema esquerda do retngulo, que realizada pelas trs primeiras linhas de cdigo. 2. No menu Debug, escolha Start. 3. Clique no boto ShowImage. Voc observar que a imagem no mais cintila ao se mover. Ainda existe um problema adicional que deve ser consertado. Voc deve ter percebido que a mensagem exibida noPictureBox controle est em uma fonte menor que a verso original. Isso ocorre porque o Font propriedade dasPictureBox controle do aplicativo Visual Basic 6.0 foi definida para Arial negrito 16 no time de design. There is noFont property for the Visual Basic 2008 PictureBox control; instead, the form's default font (Me.Font) is used. Voc pode corrigir isso declarando um novo Font objeto.

Para corrigir a fonte


1. No Timer1_Tick procedimento, adicione a declarao a seguir:

VB
Dim f As System.Drawing.Font = New System.Drawing.Font("Arial", _ 16, FontStyle.Bold)

2. Na telefonar para g.DrawString, altere o parmetro de fonte de Me.Font para f. 3. No menu Debug, escolha Start. 4. Clique no boto ShowImage. Agora o texto exibido na fonte correta. Agora que o aplicativo est com a paridade com o aplicativo Visual Basic 6.0 original de volta, voc adicionar alguns cdigos para melhorar o aplicativo. Afinal, no h nenhuma razo em atualizar o aplicativo se desejar usufruir Visual Basic 2008. Na prxima etapa, voc adicionar funcionalidade para fazer o formulrio desaparecer lentamente quando ele fechado.

Observao:
O efeito de desaparecimento no visvel em monitores de 256 cores; assim para exibir os resultados voc precisar definir sua intensidade de cor para High Color ou True Color. O Opacity propriedade funciona somente no Windows XP.

Para aprimorar o aplicativo


1. No Editor de Cdigos, selecione a lista suspensa Class Name e escolha (Form1 Events). 2. No Nome do mtodo drop-down, selecionar o FormClosing evento. 3. No procedimento Form1_FormClosing, digite o cdigo a seguir: VB
Dim i As Single For i = 1 To 0 Step -0.1 Me.Opacity = i Application.DoEvents() System.Threading.Thread.Sleep(100) Next

4. No menu Debug, escolha Start. 5. Feche o formulrio e observe como ele desaparece gradualmente. Voc pode controlar a rapidez ele desaparece aumentando o dimensionar da etapa (ou, reduzindo o Sleepatraso).

Consulte tambm

Das könnte Ihnen auch gefallen