JJ 21.09.15 Splashscreen

This commit is contained in:
JenneJ
2015-09-21 15:53:44 +02:00
parent c00d0f9b6a
commit b7bdf56ef5
8 changed files with 386 additions and 123 deletions

View File

@@ -1,8 +1,11 @@
Public NotInheritable Class frmSplash
Imports System.ComponentModel
Public NotInheritable Class frmSplash
'TODO: Dieses Formular kann einfach als Begrüßungsbildschirm für die Anwendung festgelegt werden, indem Sie zur Registerkarte "Anwendung"
' des Projekt-Designers wechseln (Menü "Projekt", Option "Eigenschaften").
Private InitSteps As Integer = 4
Private bw As New BackgroundWorker()
Private Sub frmSplash_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Richten Sie den Dialogtext zur Laufzeit gemäß den Assemblyinformationen der Anwendung ein.
@@ -29,8 +32,63 @@
Version.Text = System.String.Format(Version.Text, My.Application.Info.Version.Major, My.Application.Info.Version.Minor)
'Copyrightinformationen
Copyright.Text = My.Application.Info.Copyright
Copyright.Text = My.Application.Info.Copyright & " " & My.Application.Info.CompanyName
Me.BringToFront()
InitProgram()
End Sub
Private Sub InitProgram()
bw.WorkerReportsProgress = True
AddHandler bw.DoWork, AddressOf bw_DoWork
AddHandler bw.ProgressChanged, AddressOf bw_ProgressChanged
AddHandler bw.RunWorkerCompleted, AddressOf bw_RunWorkerCompleted
bw.RunWorkerAsync()
End Sub
Private Function CalcProgress(_step As Integer)
Return _step * (100 / InitSteps)
End Function
Private Sub bw_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs)
Dim Init = New ClassInit()
bw.ReportProgress(CalcProgress(1), "Initialisiere Logger")
Init.InitLogger()
System.Threading.Thread.Sleep(500)
bw.ReportProgress(CalcProgress(2), "Initialisiere Datenbank")
Init.InitDatabase()
System.Threading.Thread.Sleep(500)
bw.ReportProgress(CalcProgress(3), "Initialisiere Windream-Einstellungen")
Init.InitWindream()
System.Threading.Thread.Sleep(500)
bw.ReportProgress(CalcProgress(4), "Initialisiere Benutzer")
Init.InitUserLogin()
System.Threading.Thread.Sleep(300)
End Sub
Private Sub bw_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs)
pbStatus.Value = e.ProgressPercentage
lblStatus.Text = e.UserState.ToString()
End Sub
Private Sub bw_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs)
' Bei Fehler MsgBox anzeigen und Programm beenden
If e.Error IsNot Nothing Then
MsgBox(e.Error.Message, MsgBoxStyle.Critical, "Fehler beim Initialisieren")
Application.Exit()
End If
' Wenn kein Fehler, Splashscreen schließen
Me.Close()
End Sub
End Class