Mit nachfolgendem Code lässt sich ein einfacher Newsticker realisieren (Lauftext), wobei die Daten aus einer XML-Datei ausgelesen werden. Aufbau der XML-Datei: <?xml version="1.0" encoding="ISO-8859-1"?> <Test> <Text1>Dieser NewsTicker</Text1> <Text2>erwarte als Datenquelle eine XML Datei.</Text2> <Text3>Beispiel wurde heruntergeladen von:</Text3> <Text4>http://www.vbarchiv.net - Das große Visual Basic Archiv</Text4> </Test> Imports System Imports System.Drawing Imports System.Windows.Forms Imports System.Xml Imports System.Text Imports System.IO Public Class Form1 ''' <summary> ''' Hilfsklasse zur Ermittlung des Anwendungspfades. ''' </summary> Public Class Helpers Public Shared Function AppPath() As String Return My.Application.Info.DirectoryPath End Function End Class ' Benötigtes Grafik Objekt. Private hGraphics As Graphics ' Weite der auszugebenden Zeichenkette. Private [x] As Single = 0 ' y-Position der auszugebenden Zeichenkette. Private [y] As Single = 0 ' Auszugebende Zeichenkette Private msg As String ' Länge Zeichenkette Private Length As Single ' Grafik Objekt Private fnt As Font ' Timer-Objekt Private WithEvents Timer1 As New Timer ''' <summary> ''' Pfad zur benötigten .xml Datei initialisieren und die ''' Initialisierung des News - Tickers aufrufen. ''' </summary> Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' Anwendung zentrieren. With Me .CenterToScreen() End With With Me hGraphics = .CreateGraphics() x = .Width y = 50 End With ' Pfad zur .xml Datei initialisieren. Dim xmlPath As String = Path.Combine(Helpers.AppPath, "test.xml") ' Aufruf der Prozedur zur Initialisierung des News - Tickers. Call InitAndLoadNews(xmlPath) End Sub ''' <summary> ''' Initialisierung des News - Tickers... ''' </summary> ''' <param name="Filename">XML-Dateiname</param> Private Sub InitAndLoadNews(ByVal Filename As String) Try ' Caption des Formulars setzten. Me.Text = "XML - News - Ticker..." ' XmlTextReader initialisieren. Dim xtr As New XmlTextReader(Filename) ' Daten aus .xml Datei in die Variable msg lesen. While xtr.Read() If xtr.NodeType = XmlNodeType.Text Then msg += " " & xtr.Value.ToString() End If End While ' Timer initialisieren und starten. With Me.Timer1 ' Geschwindigkeit des Zeitgebers. .Interval = 100 ' Zeitgeber starten. .Start() End With ' Deklarierten Font Objekt initialisieren. fnt = New Font("Times New Roman", 22, _ FontStyle.Bold Or FontStyle.Italic, GraphicsUnit.Pixel) ' Benötigte Ausgabeweite ermitteln. Dim sf As SizeF = hGraphics.MeasureString(msg, fnt) ' Ausgabeweite an die Variable "Length" übergeben. Length = sf.Width Catch ex As Exception ' Sollte hier ein Fehler auftreten wird dieser abgefangen ' und die Anwendung beendet. MessageBox.Show(ex.Message.ToString(), "Info") ' Anwendung beenden. Me.Close() End Try End Sub ''' <summary> ''' Grafikobjekt initialisieren und auf dem Ausgabeobjekt ausgeben. ''' </summary> Private Sub Timer1_Tick(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Timer1.Tick Try ' Hintergrund des Grafikobjektes an den Formhintergrund anpassen. hGraphics.Clear(Me.BackColor) ' Ausgabe des in der .xml Datei hinterlegten Strings. hGraphics.DrawString(msg, fnt, Brushes.Navy, [x], [y]) If [x] <= (0 - Length) Then [x] = Me.Width Else [x] -= 5 End If Catch End Try End Sub ''' <summary> ''' Beim MouseHover Ereignis wird der Lauftext angehalten. ''' </summary> Private Sub Form1_MouseHover(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Me.MouseHover ' Der Timer wird angehalten sobald die Maus in den Formbereich eintritt. Timer1.Stop() End Sub ''' <summary> ''' Verläßt die Maus die Form wird der angehaltene Lauftext wieder gestartet. ''' </summary> Private Sub Form1_MouseLeave(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Me.MouseLeave ' Verläßt die Maus den Formbereich wird der Timer gestartet. Timer1.Start() End Sub ''' <summary> ''' Verwendete Resourcen freigeben. ''' </summary> Private Sub Form1_FormClosing(ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing ' Wurde das Grafik Objekt initialisiert wird es jetzt freigegeben. If Not hGraphics Is Nothing Then hGraphics.Dispose() End If End Sub End Class Dieser Tipp wurde bereits 10.852 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. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats Januar 2025 Dieter Otter Zeilen einer MultiLine-TextBox ermitteln (VB.NET) Dieser Zipp zeigt, wie man die Zeilen einer MultiLine-TextBox exakt so ermitteln kann, wie diese auch in der TextBox dargestellt werden. Neu! sevCommand 4.0 Professionelle Schaltflächen im modernen Design! Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. |
||||||||||||||||
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. |