Efecto de Scroll Text (Marquesina)

Iniciado por @ed33x, Enero 22, 2011, 09:22:58 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Enero 22, 2011, 09:22:58 PM Ultima modificación: Enero 05, 2015, 09:51:48 AM por Expermicid
Este es la forma que descubri yo mismo de hacer el Efecto ese de "Scroll" , osea que el texto va rotando...similar al que aparece en algunos reproductores de musica  ::)

Primero que todo abrimos un nuevo proyecto y en el agregaremos tres controles basicos que seran: un TextBox, un Label y un Boton, creo que la mayoria sabreis como agregar controles a un formulario en Visual Estudio.

Ahora lo siguiente que haremos es ponerles nombre a estos elementos para despues ubicarlos correctamente en el codigo, luego lo haremos de la siguiente forma: txtScroll (TextBox), lblScroll (Label), btnScroll (Boton). Fijad que uso tres letras para definir en el que tipo de Control es y asi tener un poco mas de organizacion.

Ahora al formulario le agregaremos un control de tiempo, osea un Timer, que sera el que nos haga la mayor parte del trabajo :D

Entonces, empezamos por el evento que se realizara al presionar el Boton de "Iniciar Efecto", el cual se encargara de comprobar si se ha escrito texto y de pasarlo este al label para iniciar el efecto, o de devolver el Foco al TextBox.

Código: csharp
    Private Sub btnScroll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnScroll.Click
        If txtScroll.Text = "" Then
            txtScroll.Focus()
        Else
            lblScroll.Text = txtScroll.Text & " "
            Timer1.Start()
        End If
    End Sub[/geshi]

Ahora agregaremos algo simple para el textbox, para cuando al dar click se borre el texto anterior, es algo extra pero que es algo funcional :D

[geshi=vbnet]    Private Sub txtScroll_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtScroll.Click
        txtScroll.Text = ""
    End Sub


Ahora el evento principal que es el manejado por el Timer1, el cual con cada "pasada" de tiempo, segun lo hayan configurado en la propiedad del Intervalo, seran unos milisegundos o segundos...o como deseen....

Código: csharp
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim NuevoTxt, NuevoTxt2
        NuevoTxt = lblScroll.Text.Substring(0, 1)
        NuevoTxt2 = lblScroll.Text.Substring(1)
        lblScroll.Text = NuevoTxt2 & NuevoTxt
    End Sub


Eso es todo, ahora solo falta correr la aplicacion, escribir un texto y probar el efecto para que vean como se ve de bonito  grin

Este seria el codigo final:

Código: csharp
Public Class Form1

    Private Sub btnScroll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnScroll.Click
        If txtScroll.Text = "" Then
            'Si no hay texto entonces devolvemos el foco
            txtScroll.Focus()
        Else
            'Si hay texto entonces iniciamos el efecto
            lblScroll.Text = txtScroll.Text & " "
            Timer1.Start()
        End If
    End Sub


    Private Sub txtScroll_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtScroll.Click
        txtScroll.Text = ""
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        'Definimos dos variabkles temporales que seran usadas para hacer el intercambio en el String
        Dim NuevoTxt, NuevoTxt2
        NuevoTxt = lblScroll.Text.Substring(0, 1)
        NuevoTxt2 = lblScroll.Text.Substring(1)
        lblScroll.Text = NuevoTxt2 & NuevoTxt
    End Sub
End Class


Espero sea de su agrado.  ::)

PD: para hacer el efecto mas lento deben modificar el Intervalo del Timer1, y tambien pueden jugar con los atributos del Label y ponerlo en direccion contraria u otro efecto mas :D
Me cambie de messenger ahora es: No tienes permitido ver los links. Registrarse o Entrar a mi cuentaNo tienes permitido ver los links. Registrarse o Entrar a mi cuenta