vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2019
 
zurück
Rubrik: Grafik und Font · Grafische Effekte   |   VB-Versionen: VB.NET19.03.08
XML Newsticker (.NET)

Anzeige eines Lauftextes aus einer XML-Datei heraus.

Autor:   Heinz PrelleBewertung:     [ Jetzt bewerten ]Views:  9.148 
www.visual-basic5.deSystem:  WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

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 9.148 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.

Neue Diskussion eröffnen

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-2019 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