sábado, 16 de abril de 2011

Animação durante o processamento em VB6

E aí, pessoal!

Uma forma de demonstrar ao usuário que a aplicação está processando uma rotina que demande tempo, é utilizar um vídeo / figura com uma animação em loop. Quando se tem uma iteração com os registros de uma tabela, fica determinada a quantidade de vezes que o trecho de código vai iterar, e assim fica mais fácil usar uma barra de progresso variando de 1 a x.

Em uma tentativa de conexão com uma base de dados, ou até mesmo a cópia de um grande arquivo entre diretórios da rede, fica difícil mensurar o tempo em que a rotina vai levar para concluir. Nesse contexto, como uma solução possível, vamos demonstrar como se carregar uma animação para caracterizar o processo em andamento em VB6. O vídeo a ser usado é da extensão .AVI e o controle responsável por viabilizar a reprodução do vídeo em modo loop é o Animation (Microsoft Windows Common Controls-2 5.0).

Abra o Visual Basic 6.0 e crie um novo projeto do tipo Stardard EXE.


Para utilizar o controle Animation, precisamos adicionar uma referência do componente ao projeto. Clique no menu Project > Components (Ctrl + T), marque a opção Microsoft Windows Common Controls-2 5.0 e clique no botão OK da janela.


Com o controle já disponível na Toolbox, dê um duplo-clique para incluí-lo no Form1.


Adicione um controle CommandButton também, para dar início a rotina de tentativa de conexão com um Servidor SQL Server. Perceba que a propriedade Caption do botão e tamanho do Form foi alterado para uma melhor visualização.


Assim que o VB6 é instalado no computador, é criada uma pasta contendo diversos arquivos multimídia (vídeo, ícones e imagens de diversos formato). O arquivo .AVI que utilizaremos, está armazenado na pasta “...\Arquivos de programas\Microsoft Visual Studio\Common\Graphics\Videos”. Dê um duplo-clique sobre o botão, e escreva o trecho abaixo no escopo do evento Click do botão.

Private Sub Command1_Click()
    On Error GoTo erro
    Dim con As Object
    Set con = CreateObject("ADODB.Connection")
    Animation1.Open "C:\Arquivos de programas\Microsoft Visual Studio\Common\Graphics\Videos\FINDCOMP.AVI"
    Animation1.AutoPlay = True
    DoEvents
    con.Open "Provider=SQLOLEDB;" & _
             "Data Source=ServidorQueNaoExiste;" & _
             "User Id=sa;" & _
             "Password=123456;" & _
             "Initial Catalog=BancoQueNaoExiste;"
    Animation1.Close
    con.Close
    Set con = Nothing
    MsgBox "Conexão efetuada com sucesso!", vbInformation, "Programação On-Line"
    Exit Sub
erro:
    MsgBox Err.Description, vbExclamation, "Programação On-Line"
    Animation1.Close
End Sub

Para testar, rode a aplicação e clique no botão “Conectar no MSSQL”.


O resultado do exemplo é o esperado, ou seja, assim que o usuário clica no botão, o vídeo é carregado no modo AutoPlay (em loop) até o processamento seja concluído. No final, é exibido uma mensagem de erro (já que os dados da string de conexão “são fictícios”) que caracteriza o fim da rotina e o vídeo é fechado.

Espero que tenham gostado da dica.
Até mais!

Nenhum comentário:

Postar um comentário

Deixe aqui seu comentário