Files
ClipboardWatcher/app/DD_Clipboard_Searcher/frmSplash.vb
2019-07-16 14:59:32 +02:00

87 lines
3.0 KiB
VB.net

Imports System.ComponentModel
Imports System.Threading
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 = 3
Private bw As New BackgroundWorker()
Private mainForm As Form
Private Sub frmSplash_KeyUp(sender As Object, e As KeyEventArgs) Handles Me.KeyUp
If e.KeyCode = Keys.Escape Then
ESC_Hidden = True
End If
End Sub
Private Sub frmSplash_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Version.Text = String.Format("Version {0}", My.Application.Info.Version.ToString)
Copyright.Text = My.Application.Info.Copyright & " " & My.Application.Info.CompanyName
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)
Try
Dim Init = New ClassInit()
bw.ReportProgress(CalcProgress(1), "Initializing Logger")
Init.InitLogger()
Thread.Sleep(500)
bw.ReportProgress(CalcProgress(2), "Initializing Database")
Init.InitBasics()
If Init.InitDatabase() = True Then
Thread.Sleep(500)
bw.ReportProgress(CalcProgress(3), "Initializing User-Configuration")
If ClassInit.InitUserLogin = False Then
If ERROR_INIT = "" Then
ERROR_INIT = "INVALID USER"
End If
End If
Thread.Sleep(500)
Else
ERROR_INIT = "DATABASE"
End If
Catch ex As Exception
MsgBox("Unexpected Error in bw_DoWork: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
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, "Unexpected Error in frmSplash")
Application.Exit()
End If
' Wenn kein Fehler, Splashscreen schließen
Me.Close()
End Sub
End Class