Views

Histats

Vitrine

VBA Access - Animando o título do formulário e do ícone da Barra de Tarefas - Animate String


Neste exemplo estou aplicando o código no MS Access, mas com poucas adaptações também pode ser aplicado aos demais produtos da suíte MS Office.

É um efeito que deve ser usado de forma comedida, caso contrário chama muito a atenção. Talvez possa utilizá-lo:

- Quando termina um processamento e você deseja chamar a atenção para o formulário;
- Quando determinado valor é alcançado, deseja que o formulário já indique chamando a atenção;
- etc...

Para aplicá-lo a um formulário insira o código dessa maneira (Defina 300 ms para testar):

Private Sub Form_Timer()
    ' Author:                     Date:               Contact:                 URL:
    ' André Bernardes             20/05/2010 11:15    bernardess@gmail.com     André Luiz Bernardes - CURRICULUM VITAE
    ' Atualiza o relógio para ver que funciona.    

    [Form_frm_Avisos].Caption = AniText("  Software Bernardes® - Copyright© Bernardes S.A.", 3)
    
    [Form_frm_Avisos].Repaint
End Sub

Agora, você pode aplicar este efeito também no título da aplicação, ou seja, alterar o Caption do próprio MS Access. Isso envolve o título da janela aberta e também o ícone na barra de trabalho. Como?

Private Sub Form_Timer()
    ' Author:                     Date:               Contact:                 URL:
    ' André Bernardes             20/05/2010 11:15    bernardess@gmail.com     https://sites.google.com/site/bernardescvcurriculumvitae/
    ' Atualiza o relógio para ver que funciona.
    
    Dim dbs As Database
    Set dbs = CurrentDb

    'Me.lblTime.Caption = ""
    [Form_frm_Avisos].lblTime.Caption = Right(Now(), 9)

    [Form_frm_Avisos].Caption = AniText("  Software Bernardes® - Copyright© Bernardes S.A.", 3)
    
    dbs.Properties!AppTitle = AniText("  Software Bernardes® - Copyright© Bernardes S.A.", 1)

    Application.RefreshTitleBar

    [Form_frm_Avisos].Repaint
End Sub

Sim, mas para que esse processo funcione, precisamos da função AniText, segue:

Global Cl As Integer
Global at As Integer
Public Function AniText(str As String, eff As Integer) As String

    ' Author:                     Date:               Contact:                 URL:
    ' André Bernardes             13/03/2010 12:22    bernardess@gmail.com     https://sites.google.com/site/bernardescvcurriculumvitae/
    ' Retorna a string animada.
    
    Dim lop

    Let Cl = Len(str) + 1
    Let at = at + 1

    If at >= Cl Then
        Let at = 1
    End If

    Select Case eff
    Case 0          'Move to Right
        Let AniText = Mid(str, at) + Left(str, at)
    Case 1          'Move to Left
        Let AniText = Mid(str, (Cl - at)) + Left(str, (Cl - at))
    Case 2          'Move to Centre
        Let AniText = Mid(str, (Cl - at)) + Left(str, (Cl - at)) + Mid(str, at) + Left(str, at)
    Case 3          'Move to BothSide
        Let AniText = Mid(str, at) + Left(str, at) + Mid(str, (Cl - at)) + Left(str, (Cl - at))
    End Select
End Function


References:

Tags: VBA, Office, Access, Tips, animar, animate, form, formulário, caption, move, mover, string, texto,

LinkWithinBrazilVBAExcelSpecialist

Related Posts Plugin for WordPress, Blogger...