Avatar billede dranzer Nybegynder
25. maj 2006 - 15:28 Der er 5 kommentarer og
5 løsninger

Hjælp til Scrolling text

Hej...

Jeg har sedde og forsøgt at lave en Scrolling text i mit program, men uden held...

Det skulle være sådan en vandret linje min tekst køret i.. Jeg mener man bare kan lave det ud af en Label, Men er ikke sikker.

Er der nogne her inde der kan hjælp med at lave en Scrolling text? ;o)
Avatar billede thomaxz Nybegynder
25. maj 2006 - 18:30 #1
Her er et eks. 

Dim A As String
Dim B As String
Dim Tel As Long
Private Sub Form_Load()
A = "                          Nyhed: Køb en blå jakke t-shirt fra HalsolPOOl"
End Sub

Private Sub Timer1_Timer()
Tel = Tel + 1
If (Tel - 1) = Len(A) Then
    Tel = 1
End If
B = Mid$(A, Tel, (Len(A) + 1) - Tel)
Form1.Label1.Caption = B
End Sub


den indeholder en label og en timer som har interval 250, du kan lave den bedre hvis du fastlår hvoir mange bostaver der kan være ilabel evt. via fastlå størelsen på tegn og lkængde af teksten ved  lægndepålabelke/srtørelse tegn= tegng i label.

så kan du få den helt ud i begge hjørne elelr begynde før.

-Thomas
Avatar billede dranzer Nybegynder
25. maj 2006 - 19:59 #2
NU har jeg lavet det sådan her

Public Class Form1
    Dim A As String
    Dim B As String
    Dim Tel As Long


    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Tel = Tel + 1
        If (Tel - 1) = Len(A) Then
            Tel = 1
        End If
        B = Mid$(A, Tel, (Len(A) + 1) - Tel)
        Label1.Text = B
    End Sub

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

    End Sub

    Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
        A = "                          Nyhed: Køb en blå jakke t-shirt fra HalsolPOOl"
    End Sub
End Class

der skulle lave lidt om Caption hedder nemlig Text i Visual Studio 2005

Men der er problemer fordi når jeg køre programmet står der bare Label1 og det køre ikke hen over programmet.
Avatar billede thomaxz Nybegynder
26. maj 2006 - 16:57 #3
Du har husket at sættet en interval på din timer?

-Thomas
Avatar billede dranzer Nybegynder
28. maj 2006 - 18:49 #4
Her er et eksempel på hvordan jeg har lavet det:

http://www.online-net.dk/Interval.JPG

ser det forkert ud??? Før stod interval på 100 det virker jo ikke. Så satte jeg den op på 500 men det hjalp heller ikke.

Det kan være det bliver nemmer når du kan se det på et billede.

;o)
Avatar billede thomaxz Nybegynder
28. maj 2006 - 23:08 #5
Jep, så det ikke pga. interval!

500 svare til 0.30 sekund elelr ½sekund da det måles i mille sekunder
og der går 1000 milisekunder på 1 sekund.

du burde kunne skrive a.length ikke?
eller lign.

så prøv flg.
  Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Tel = Tel + 1
        If (Tel - 1) = a.length Then
            Tel = 1
        End If
        B = Mid$(A, Tel, (a.lentgh + 1) - Tel)
        Label1.Text = B
End Sub

det burde være mere rigtig.
Avatar billede dranzer Nybegynder
29. maj 2006 - 09:20 #6
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Tel = Tel + 1
        If (Tel - 1) = A.Length Then
            Tel = 1
        End If
        B = Mid$(A, Tel, (A.Length + 1) - Tel)
        Label1.Text = B
    End Sub


Jeg satte interval op på 10000 fordi der ikke sket noget da den stod på 1000.

Men det hjalp heller ikke... Den vil bare ikke køre hen over programmet Label1.

Hvad tror du jeg gør galt??? ;o)
Avatar billede thomaxz Nybegynder
30. maj 2006 - 08:25 #7
Fejlen er af din timer ikke er enablede og at mid$ skal være mid, uden $ tegn.

den kode vil sæt timer til true, efter a er sat.

Public Class Form1
    Dim A As String
    Dim B As String
    Dim Tel As Long


    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Tel = Tel + 1
        If (Tel - 1) = Len(A) Then
            Tel = 1
        End If
        B = Mid(A, Tel, (Len(A) + 1) - Tel)
        Label1.Text = B
    End Sub

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

    End Sub

    Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
        A = "                          Nyhed: Køb en blå jakke t-shirt fra HalsolPOOl"
        timer1.enabled=true
    End Sub
End Class


eller denne kode, forskellen er len er udskiftede med a.Length

Public Class Form1
    Dim A As String
    Dim B As String
    Dim Tel As Long


    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Tel = Tel + 1
        If (Tel - 1) = a.Length Then
            Tel = 1
        End If
        B = Mid(A, Tel, (a.Length) + 1) - Tel)
        Label1.Text = B
    End Sub

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

    End Sub

    Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
        A = "                          Nyhed: Køb en blå jakke t-shirt fra HalsolPOOl"
        timer1.enabled=true
    End Sub
End Class


-Thomas
Avatar billede dranzer Nybegynder
30. maj 2006 - 10:09 #8
OK nu virker det :o)

Men vil lige gerne have det sidste hjælp.

Hvordan  gør jeg sådan at der køre automatisk hen over programmet nu skal man nemlig trykke på Label1 for at den begynder... ;O)

Jeg har brugt denne kode:

Public Class Form1
    Dim A As String
    Dim B As String
    Dim Tel As Long



    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Tel = Tel + 1
        If (Tel - 1) = Len(A) Then
            Tel = 1
        End If
        B = Mid(A, Tel, (Len(A) + 1) - Tel)
        Label1.Text = B


    End Sub

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

    End Sub

    Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
        A = "Nyhed: Køb en blå jakke t-shirt fra HalsolPOOl"
        Timer1.Enabled = True

    End Sub
End Class


Den ande kode kunne jeg ikke lige få til at du ;o)
Avatar billede thomaxz Nybegynder
30. maj 2006 - 10:11 #9
Sæt den i form load i stedet.


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        A = "Nyhed: Køb en blå jakke t-shirt fra HalsolPOOl"
        Timer1.Enabled = True
    End Sub

    Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click


    End Sub

-Thomas
Avatar billede dranzer Nybegynder
30. maj 2006 - 10:18 #10
Tak for hjælp... ;o) Jeg fandt selv ud af det sidste.

Public Class Form1
    Dim A As String
    Dim B As String
    Dim Tel As Long



    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Tel = Tel + 1
        If (Tel - 1) = Len(A) Then
            Tel = 1
        End If
        B = Mid(A, Tel, (Len(A) + 1) - Tel)
        Label1.Text = B


    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        A = "Nyhed: Køb en blå jakke t-shirt fra HalsolPOOl"
        Timer1.Enabled = True
    End Sub

    Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click

    End Sub
End Class



Nu får du dit point. ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester