Jump to content

Label com mensagem tipo rodapé


kazzx
 Share

Recommended Posts

viva,

queria saber se era possível e como fazer para eu na minha aplicação ter sempre uma mensagem em baixo tipo rodapé a dizer 'Agenda Electrónica'. mas isto sempre a mexer, tipo rodapé de televisão 👍

cumps.

Link to comment
Share on other sites

Por exemplo tens um timer que tem o intervalo definido como 1 segundo... e tens um label com o texto definido como Agenda<space>Electrónica<space>...

Por cada tick pegas na letra mais à esquerda e metes à direita...

1 tick -> genda<space>Electrónica<space>A

2 tick -> enda<space>Electrónica<space>Ag

e por aí adiante...

Link to comment
Share on other sites

Existem tantos exemplos ...

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Label1.Left = 0
        Label1.Width = Panel1.Width
        Label1.Height = 50
        Label1.Top = Panel1.Height

        Label1.Text = "Line 1" & vbCrLf & "Line 2" & vbCrLf & "Line 3"

        Timer1.Interval = 25
        Timer1.Start()

    End Sub


    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Label1.Top -= 1
        If Label1.Top < -Label1.Height Then
            Label1.Top = Panel1.Height
        End If
    End Sub

Fonte: http://www.experts-exchange.com/Programming/Languages/.NET/Visual_Basic.NET/Q_23647034.html

Procura por marquee 👍

Link to comment
Share on other sites

Se for uma coisa que uses muito até podes fazer uma classe que herde o label e acrescentas-lhe a funcionalidade.

Por exemplo, escrito à pressão porque tenho fome e quero ir almoçar 👍

Acrescentas uma classe ao projecto e fazes Build.

Como a classe herda o label e o label herda o controlo visual, depois do build vai-te aparecer na ToolBox.

Basta arrastar para o form, como farias com um label normal.

A diferença é que este até já vai a dançar.

Como podes ver por o código, acrescentei-lhe duas propriedades para controlares se o movimento está activou ou não e a velocidade do movimento.

Se for importante consultares o text a qualquer altura, deverás fazer um override à propriedade Text para guardares o texto original, pois o movimento é aplicado directamente ao Text.

Public Class LabelDeslizante
    Inherits Label

    Private WithEvents TMR As New Timers.Timer With {.Enabled = True, .Interval = 500}

    Private Sub TMR_Elapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs) Handles TMR.Elapsed
        Me.Invoke(New MudaTexto(AddressOf MudaTextoHndlr))
    End Sub

    Delegate Sub MudaTexto()

    Private Sub MudaTextoHndlr()
        Dim TempChar As Char = Me.Text.Substring(0, 1)
        Me.Text = Me.Text.Substring(1, Me.Text.Length - 1) & TempChar.ToString
    End Sub

    Public Property Movimento As Boolean
        Get
            Return TMR.Enabled
        End Get
        Set(ByVal value As Boolean)

            Select Case value
                Case True
                    TMR.Start()
                Case False
                    TMR.Stop()
            End Select

        End Set
    End Property

    Public Property Velocidade As Integer
        Get
            Return TMR.Interval
        End Get
        Set(ByVal value As Integer)
            TMR.Interval = value
        End Set
    End Property

End Class

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

Existem tantos exemplos ...

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

       Label1.Left = 0
       Label1.Width = Panel1.Width
       Label1.Height = 50
       Label1.Top = Panel1.Height

       Label1.Text = "Line 1" & vbCrLf & "Line 2" & vbCrLf & "Line 3"

       Timer1.Interval = 25
       Timer1.Start()

   End Sub


   Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
       Label1.Top -= 1
       If Label1.Top < -Label1.Height Then
           Label1.Top = Panel1.Height
       End If
   End Sub

Fonte: http://www.experts-exchange.com/Programming/Languages/.NET/Visual_Basic.NET/Q_23647034.html

Procura por marquee 😉

eu utilizei este prgrama mas gostava que fosse da direirta para a esquerda pode me explicar?

Link to comment
Share on other sites

eu utilizei este prgrama mas gostava que fosse da direirta para a esquerda pode me explicar?

Veja o trecho:

  	 Label1.Top -= 1
    If Label1.Top < -Label1.Height Then
	    Label1.Top = Panel1.Height
    End If

A propriedade Top e referente a posicao Y do objeto dentro do seu controle pai.A cada vez que o evento tick do timer for chamado a posicao da label vai subir 1 pixel no controle pai (no caso, o Form).

Troque Top por Left e ajuste conforme o necessario.

Label.Left -= 1
If Label.Left = -Label.WidthThen
Label.Left = Form.Width + Label.Width
End If
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.