PDA

View Full Version : Coding - VB6: Prüfung ob Anwendung oder Form schon geladen



Voodoo
29.12.2006, 15:48
Version: VB4, VB5, VB6
Beispielprojekt angehängt für VB6 (http://forum.myrabbits.de/attachment.php?attachmentid=1642&stc=1&d=1167403141)(20 Kb)

Um zu verhindern, dass die Anwendung zweimal ausgeführt wird, reicht ein einfacher Code im Load-Ereignis des Start-Formulars aus:


If App.PrevInstance = True Then
MsgBox "Die Anwendung wird bereits ausgeführt.", vbInformation
End
End If



Möchte man überprüfen ob das Formular schon geladen wurde, muss man die Collection durchlaufen, in der alle geladenen Forms von VB verwaltet werden und anhand der Name-Eigenschaft überprüfen, ob es darin enthalten ist.

Dies erledigt man am besten mit einer Function:


Public Function FormLoaded(ByVal Name As String) As Boolean

Dim frm As Form

For Each frm In Forms
If LCase$(frm.Name) = LCase$(Name) Then
FormLoaded = True
Exit For
End If
Next

End Function

Jetzt kann man mit folgendem Code überprüfen ob form2 (im Beispiel heißt das Formular Form2) schon geladen wurde:


If FormLoaded("form2") = True Then
MsgBox "Formular wurde schon geladen und wird nicht noch einmal geöffnet.", vbInformation
Else
Form2.Show
End If