vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2018
 
zurück
Rubrik: Grafik und Font · Grafische Effekte   |   VB-Versionen: VB2005 - VB201512.02.16
Laufschrift in vb.net mit minimalem Aufwand

Eine flackerfreie Laufschrift mit einfachen Bordmitteln zu erstellen ist nicht schwer.

Autor:   Michael MessBewertung:     [ Jetzt bewerten ]Views:  4.110 
www.mmsoftware.deSystem:  Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Wie man eine Laufschrift erzeugen kann, möglichst noch flackerfrei, kann man in vielen Tipps nachlesen. Als ich die ersten paar Tipps durchgelesen hatte, war ich überrascht, wie aufwändig die Lösungen sind. Ich hatte keine Lust, zur Implementierung dieser Funktionalität viel Zeit zu verbringen und fand eine bestechend kurze Lösung, die auf Anhieb funktionierte. Auch mit Proportionalschrift ohne viel Rechnerei!

Vorgehensweise: ein Panel in der gewünschten Breite auf die Form legen (das nennen wir mal panelLaufschrift, in dieses Panel hinein zwei Label mit Autosize=true, benannt lblLaufschrift1 und lblLaufschrift2 und zwar nebeneinander auf gleiche Höhe. Dann noch einen Timer, genannt timerLaufschrift, mit Interval=25 anlegen.

Hier erst mal der Code, bestehend aus 2 Subs:

Private Sub Laufschrift(ByVal LaufText As String)
  With lblLaufschrift1
    .Text = LaufText
    If .Width > panelLaufschrift.Width Then
      lblLaufschrift2.Text = LaufText
      timerLaufschrift.Enabled = True
      lblLaufschrift2.Left = .Left + .Width + 5
    Else
      .Left = 0
      lblLaufschrift2.Text = ""
      timerLaufschrift.Enabled = False
    End If
  End With
End Sub
Private Sub timerLaufschrift_Tick(sender As Object, e As EventArgs) _
  Handles timerLaufschrift.Tick
 
  lblLaufschrift1.Left -= 1
  lblLaufschrift2.Left -= 1
  If lblLaufschrift2.Left <= 1 Then
    lblLaufschrift1.Left = 0
    lblLaufschrift2.Left = lblLaufschrift1.Width + 5
  End If
End Sub
Private Sub Form1_Resize(ByVal sender As Object, _
  ByVal e As System.EventArgs) Handles Me.Resize
 
  Laufschrift(lblLaufschrift1.Text)
End Sub

Erläuterung:
Die Sub "Laufschrift" wird mit dem Text aufgerufen, der laufen soll. Ist dieser kleiner als der zur Verfügung stehende Raum (lblLaufschrift1.width <= panelLaufschrift.width), dann hat er Platz, muss nicht laufen, also kann auch der Timer disabled werden. Ansonsten wird das zweite Label mit dem gleichen Text gefüllt und der Timer enabled.

Pro Timerschritt wird jedes Label um ein Pixel nach links geschoben. Ist das erste Label dadurch ganz nach links aus dem Panel gewandert, werden die Rollen vertauscht, das erste Label steht linksbündig und das zweite Label folgt wieder rechts daneben. Den Abstand zwischen den beiden Labels kann man natürlich nach Gusto variieren, hier mal mit 5 angenommen.

Wird das Fenster vergrößert bzw. verkleinert wird die Prozedur "Laufschrift" erneut aufgerufen, denn bei dynamischer Veränderung der Panelgröße könnte es jetzt sein, dass der Text plötzlich reinpasst und er eigentlich nicht mehr laufen sollte. Und umgekehrt, schiebt man die Form enger, soll er loslaufen.

Dieser Tipp wurde bereits 4.110 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Aktuelle Diskussion anzeigen (1 Beitrag)

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2018 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel