FAQ 0027: Wie lade ich Dialoge, deren Namen in einer Variable steht?
von Helge Rex
Frage
Ich möchte eine Form laden, deren Name in einer String-Variable steht. Wie geht das?
Beispiel
VB stellt die Collection Forms zur Verfügung (Code von Konrad Rudolph gekürzt):
Function LoadFormDynamic(ByVal strFormName As String) As Form ' Diese Funktion lädt eine Form anhand ihres Namens. ' Erwartet wird der Name der Form. ' Es wird eine Referenz auf die Form zurückgegeben. On Error Resume Next Set LoadFormDynamic = VB.Forms.Add(strFormName) If (Err.Number > 0) Then On Error Goto 0 Call Err.Raise( _ 424, "LoadFormDynamic", _ "Objekt erforderlich:" & vbNewLine & _ "Im aktuellen Projekt gibt es keine Form namens '" & _ strFormName & "'." _ ) End If End Function
Listing 1: Funktion zum Starten einer Form
Dim NewForm As Form Set NewForm = LoadFormDynamic("Form3") If (Not(NewForm Is Nothing)) Then NewForm.Show vbModal End If
Listing 2: Ein möglicher Aufruf
Anmerkung von Frank Nöther:
Der obige Quelltext erstellt bei jedem Aufruf eine neue Instanz des genannten Dialogs. Ist dieses Verhalten nicht erwünscht, muß die Forms-Auflistung geprüft werden, ob bereits eine Instanz existiert.
Ihre Meinung
Falls Sie Fragen zu dieser FAQ haben, Ihre Erfahrung mit anderen Nutzern austauschen möchten oder auf eine Ergänzung hinweisen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.