Olá! Saturday, 20 de April de 2024.



Dicas CódigoFonte.net
Wednesday, 08 de July de 2009

Criando um barra de progresso com shapes no Access

Olá,

Me chamo Evandro, atualmente trabalho como programador de Visual Basic na ePSystems Software e estou aqui para dar algumas dicas e ensinar alguns truques bem legais para você usar em suas aplicações do Microsoft Access. Esta ferramenta que é subestimada por muitos programadores, mas que tem um potencial incrível.

 

Todos os exemplos usados aqui usam a versão 2003 (9.0) do Microsoft Access.

 

Bem, vamos à primeira delas:

 

Criando uma barra de progresso usando shapes (retângulos)

Lembrando que este exemplo serve apenas para fins estéticos.

 

Primeiro vamos criar um novo formulário; mesmo sendo algo muito básico vou ilustrar usando ScreenShots:

 

Novo > Modo de Design > OK

Clique para ver a imagem em seu tamanho real

Agora vamos desenhar o primeiro shape que será uma espécie de background da barra de progresso. Para isso vamos usar a ferramenta Retângulo (shape) da barra de ferramentas.

Clique para ver a imagem em seu tamanho real

Desenhe da maneira como desejar, lembrando que nossa barra de progresso se movimentará em direção ao lado direito.

 

Estilize da maneira como quiser usando a barra de ferramentas na parte superior da área de trabalho do Access.

Clique para ver a imagem em seu tamanho real

A minha ficou assim:

Clique para ver a imagem em seu tamanho real

Vamos abrir as propriedades deste shape, para isto, clique com botão deireito do mouse sobre o shape e clicando em propriedades; agora, vamos alterar o nome do objeto para shpBackgroud.

Clique para ver a imagem em seu tamanho real

Agora vamos repetir o processo e criar um outro shape por cima do shape shpBackground.

Para evitarmos redundâncias, vou colocar apenas o resultado final do segundo shape que deverá se chamar shpProgressBar.

 

Veja como ficou:

Clique para ver a imagem em seu tamanho real

Certo, agora que o layout da nossa barra de progresso está terminado, vamos partir para a programação!

 

Isto não vai exigir um alto conhecimento de VBA, por isto, mesmo iniciantes não vão ter problemas em seguir os próximos passos.

 

Vamos abrir agora o código do nosso formulário, para isso localize e clique na barra de ferramentas o botão Código, destacado em vermelho.

Clique para ver a imagem em seu tamanho real

Temos agora o ambiente de programação do VBA (Visual Basic for Applications):

Clique para ver a imagem em seu tamanho real

Vamos começar declarando a variável que armazenará o valor da largura total do da nossa barra de progresso.

 

Código:

Option Compare Database Dim intLarguraTotalDaBarraDeProgresso As Integer

 

Agora, na barra de seleção de objetos do VBA, selecione o objeto Form.

Clique para ver a imagem em seu tamanho real

Note que o evento Load já foi criado.

 

Vamos inserir o seguinte código no evento Load do objeto Form:

1 intLarguraTotalDaBarraDeProgresso = Me.shpProgressBar.Width 2 Me.shpProgressBar.Width = 0 3 Me.TimerInterval = 10      'este valor define a velocidade com que a barra se move

Explicando:

Linha 1: A primeira linha grava a largura total do shape shpProgressBar.

Linha 2: A segunda, zera a largura do shape shpProgressBar.

Linha 3: A terceira linha define o valor da propriedade TimerInterval do objeto Form. Esta linha é responsável também pela velocidade com que a barra de progresso se move; quanto maior o valor da propriedade, mais lentamente se move a barra.

 

Agora, na barra de seleção de eventos, selecione o evento Timer também do objeto Form:

Clique para ver a imagem em seu tamanho real

Agora, vamos programar a animação e o evento disparado quando a barra de progresso atinge o limite máximo:

1 If Me.shpProgressBar.Width >= intLarguraTotalDaBarraDeProgresso Then 2  'Aqui o código que será disparado quando a barra de progresso 3 'atingir a largura total. 4 5 Me.shpProgressBar.Width = intLarguraTotalDaBarraDeProgresso 6 Me.TimerInterval = 0 7 Else 8 Me.shpProgressBar.Width = Me.shpProgressBar.Width + 30 9 End If

Explicando o código:

Linha 1: Verifica se a largura total da barra de progresso foi atingida.

Linha 2: Comentário. A partir desta linha você pode inserir o código que será executado quando a largura da barra de progresso for antingida.

Linha 3: Comentário.

Linha 4: Vazia.

Linha 5: Esta linha define a largura da barra de progresso igual à largura inicial.

Linha 6: Define o valor da propriedade do objeto Form como 0. Isso faz com que o evento Timer pare de ser executado.

Linha 7: Caso a largura da barra ainda seja menor que a largura total da barra inicial, executa a próxima linha.

Linha 8: Acrescenta 30 twips na largura da barra e continua.

Linha 9: Fecha a execução condicional.

 

Para deixar o formulário com uma “cara” mais profissional, eu altero algumas propriedades do formulário.

BarrasDeRolagem = Nenhuma

SeletoresDeRegistro = Não

BotoesDeNavegacao = Não

LinhasDivisorias = Não

AutoCentralizar = Sim

PopUp = Sim

JanelaRestrita = Sim

EstiloDaBorda = Diálogo

 

Depois de alguns ajustes, vejam como ficou a minha barra de progresso:

 

Clique para ver a imagem em seu tamanho real


Todo o código do nosso exemplo ficou assim:

 

Option Compare Database Dim intLarguraTotalDaBarraDeProgresso As Integer Private Sub Form_Load() intLarguraTotalDaBarraDeProgresso = Me.shpProgressBar.Width Me.shpProgressBar.Width = 0 Me.TimerInterval = 10          'este valor define a velocidade com que 'a barra de progresso se move. End Sub Private Sub Form_Timer() If Me.shpProgressBar.Width >= intLarguraTotalDaBarraDeProgresso Then 'Aqui o código que será disparado quando a barra de progresso 'atingir a largura total. Me.shpProgressBar.Width = intLarguraTotalDaBarraDeProgresso Me.TimerInterval = 0 Else Me.shpProgressBar.Width = Me.shpProgressBar.Width + 30 End If End Sub

Em caso de dúvidas, fiquem a vontade para enviar um email para [email protected]

 

Muito bem, este foi nosso tutorial de hoje.

Até a próxima, e bons estudos!


Comentários do artigo [Novo comentário]

Messias Bezerra Santos - 19 de October de 2009 - 02:19
Muito interessante, tenho muita vontade de aprender a programar, acho maravilhoso!
Eduardo Vieiera Machado - 01 de August de 2013 - 18:21
Muito inteligente e prático. Está de parabéns Evandro !!!
Ivanoy Januário - 09 de September de 2014 - 08:05
Muito Bom Evandro!!!
Para adicionar um comentário você deve efetuar o login


Gostou do CódigoFonte.net? Quer indicar a um amigo?
Preencha os campos a seguir.
Seu Nome:
Seu E-mail:
E-mail de seu Amigo:


CodigoFonte.net » Meu Mural » Competiva - Criação de Sites » Todos os Direitos Reservados © 2002/2010