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: 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 9.144 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
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. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 sevWizard für VB5/6 Professionelle Assistenten im Handumdrehen Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) |
||||||||||||||||
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. |