title image


Smiley Re: Anfänger Fragen
Hallo,



so, nun bin ich damit endlich fertig. Es ist zwar kein perfektes Quelltext, aber hilft Dir vielleicht beim Anfang.



Um es zu testen, brauchst Du ein Projekt zu erstellen und das Quelltext in dem Hauptformular zu ersetzen:



P.S: Bei Fragen einfach melden, helfe gerne weiter.



P.S²: Pfad für die Bilder kannst Du in dem frmMain_Load-Erreignis festlegen.



Imports System.DrawingImports System.IO.DirectoryPublic Class frmMain    Inherits System.Windows.Forms.Form#Region " Private Member "    Private strImages() As String ' Pfade gefundener Bilder    Private intImage As Integer ' Bilder-Zähler#End Region#Region " Vom Windows Form Designer generierter Code "    Public Sub New()        MyBase.New()        ' Dieser Aufruf ist für den Windows Form-Designer erforderlich.        InitializeComponent()        ' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen    End Sub    ' Die Form überschreibt den Löschvorgang der Basisklasse, um Komponenten zu bereinigen.    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)        If disposing Then            If Not (components Is Nothing) Then                components.Dispose()            End If        End If        MyBase.Dispose(disposing)    End Sub    ' Für Windows Form-Designer erforderlich    Private components As System.ComponentModel.IContainer    'HINWEIS: Die folgende Prozedur ist für den Windows Form-Designer erforderlich    'Sie kann mit dem Windows Form-Designer modifiziert werden.    'Verwenden Sie nicht den Code-Editor zur Bearbeitung.    Friend WithEvents timTimer As System.Windows.Forms.Timer    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()        Me.components = New System.ComponentModel.Container        Me.timTimer = New System.Windows.Forms.Timer(Me.components)        '        'timTimer        '        Me.timTimer.Interval = 5000        '        'frmMain        '        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)        Me.ClientSize = New System.Drawing.Size(416, 279)        Me.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))        Me.Name = "frmMain"        Me.Text = "GFX"        Me.WindowState = System.Windows.Forms.FormWindowState.Maximized    End Sub#End Region#Region " Form - Events "    Private Sub frmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load        ' Ermitteln aller Dateien in einem Ordner        strImages = GetFiles("C:\Test")        ' Wenn keine Bilder gefunden wurden, dann Programm beenden        If strImages.Length = 0 Then            MsgBox("Keine Bilder im Ordner ""C:\Test"" gefunden!", MsgBoxStyle.Critical)            ' Formular schliessen            Me.Close()        Else ' Wenn Bilder gefunden wurden, dann...            ' Timer aktivieren            timTimer.Enabled = True            ' Damit es nicht 5 Sek. bis zum ersten Bild dauert rufen wir es mal schon jetzt            ShowNewImage()        End If    End Sub    Private Sub frmMain_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing        ' Timmer stoppen        timTimer.Enabled = False    End Sub#End Region#Region " Timer - Events "    Private Sub timTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timTimer.Tick        ' weiteres Bild anzeigen        ShowNewImage()    End Sub#End Region#Region " Functions "    Private Sub ShowNewImage()        ' Objektvariablen zum Laden und Zeichen eines Bildes        Dim gfxGraphics As Graphics        Dim bmpBitmap As Bitmap        Dim recRectangle As Rectangle        ' Maximale Größe des Bildes        Dim intMaxSize As Integer        ' Schriftfarben        Dim sbrTextBrush As SolidBrush        Dim sbrTextBrushBack As SolidBrush        ' Bild in ein Bitmap-Objekt laden        Try            bmpBitmap = New System.Drawing.Bitmap(strImages(intImage))        Catch ex As Exception            ' Wenn die Datei nicht geladen werden konnte, dann weitere Datei            ShowNewImage()            GoTo AbortFunction        End Try        ' Schriftfarben definieren        sbrTextBrush = New SolidBrush(System.Drawing.Color.FromArgb(255, 255, 255))        sbrTextBrushBack = New SolidBrush(System.Drawing.Color.FromArgb(63, 63, 63))        ' Graphics-Objekt mit Handle auf das Form initialisieren        gfxGraphics = Graphics.FromHwnd(Me.Handle)        ' Formular leeren (mit schwarzer Farbe)        gfxGraphics.Clear(Color.Black)        ' Recheck für das Bild erstellen        recRectangle = New System.Drawing.Rectangle        ' Maximale Größe berechnen (Höhe bzw. Breite)        If Me.ClientRectangle.Width < Me.ClientRectangle.Height Then            intMaxSize = Me.ClientRectangle.Width        Else            intMaxSize = Me.ClientRectangle.Height        End If        ' Bild-Größe berechnen        If bmpBitmap.Width > bmpBitmap.Height Then            recRectangle.Width = intMaxSize            recRectangle.Height = intMaxSize * bmpBitmap.Height \ bmpBitmap.Width        Else            recRectangle.Width = intMaxSize * bmpBitmap.Width \ bmpBitmap.Height            recRectangle.Height = intMaxSize        End If        ' Bild-Position berechten        recRectangle.X = Me.ClientRectangle.Width \ 2 - recRectangle.Width \ 2        recRectangle.Y = Me.ClientRectangle.Height \ 2 - recRectangle.Height \ 2        ' Bild zeichen        gfxGraphics.DrawImage(bmpBitmap, recRectangle)        ' Dateiname anzeigen        gfxGraphics.DrawString(strImages(intImage), Me.Font, sbrTextBrushBack, 0, 0)        gfxGraphics.DrawString(strImages(intImage), Me.Font, sbrTextBrushBack, 2, 0)        gfxGraphics.DrawString(strImages(intImage), Me.Font, sbrTextBrushBack, 2, 2)        gfxGraphics.DrawString(strImages(intImage), Me.Font, sbrTextBrushBack, 0, 2)        gfxGraphics.DrawString(strImages(intImage), Me.Font, sbrTextBrush, 1, 1)        ' Zähler um eins vergrößern        intImage += 1        ' Wenn alle Bilder angezeigt wurden, dann von vorne wieder anzeigen        If intImage > strImages.Length Then            intImage = 0        End IfAbortFunction:        ' Elemente bereinigen        If Not gfxGraphics Is Nothing Then            gfxGraphics.Dispose()        End If        If Not bmpBitmap Is Nothing Then            bmpBitmap.Dispose()        End If        If Not sbrTextBrushBack Is Nothing Then            sbrTextBrushBack.Dispose()        End If        If Not sbrTextBrush Is Nothing Then            sbrTextBrush.Dispose()        End If        gfxGraphics = Nothing        bmpBitmap = Nothing        recRectangle = Nothing        sbrTextBrushBack = Nothing        sbrTextBrush = Nothing    End Sub#End RegionEnd Class

Mit freundlichen Grüßen

AndyG

E-Mail:  Andreas_Graf [öt] DevPlanet.de
Homepage:  http://www.DevPlanet.de



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: