Sicher kennen auch Sie die Standard InputBox. Sie ist zwar nicht sonderlich flexibel, aber hin- und wieder lässt sie sich doch sinnvoll einsetzen. Nun fordert man also den Anwender auf, irgendeine Eingabe zu machen - über die InputBox. Die InputBox-Funktion selbst liefert im Rückgabewert den eingegebenen Text. Solange dieser nicht "leer" ist, ist klar: OK wurde gewählt. Was aber, wenn der Rückgabewert eine leere Zeichenfolge ist? Wurde die InputBox nun per OK oder per Abbrechen beendet? Keine Ahnung, denn: Klickt der Anwender auf den Abbrechen-Knopf, so gibt die InputBox-Funktion einen Leerstring zurück. Gibt der Anwender keinen Text ein und klickt auf den OK-Knopf, so wird ebenfalls ein Leerstring zurückgegeben. Wie soll man nun herausfinden, welcher Button tatsächlich gewählt wurde? Klar, in diesem Fall fragen wir den Anwender per MsgBox: "Haben Sie OK oder Abbrechen gewählt?" Nein, Scherz beiseite Es gibt auch eine elegantere Lösung. Und zwar muss man wissen, dass unterschieden wird zwischen leerer Zeichenkette ("") und Null-String. Klickt der Anwender auf Abbrechen, wird eben ein Nullstring (vbNullString) zurückgegeben. Leider ist das Ergebnis der InputBox in beiden Fällen eine leere Zeichenkette ("") - zumindest hat dies den Anschein. Wenn da nicht die StrPtr-Funktion wäre. Mit Hilfe dieser Funktion lässt sich nämlich feststellen, ob es sich um eine Zeichenkette oder einen Null-String handelt. Übergibt man der StrPtr-Funktion den Rückgabewert der InputBox, so liefert diese als Ergebnis 0, wenn es sich um einen Null-String handelt. Somit lässt sich also doch unterscheiden, ob der Anwender auf "Abbrechen" geklickt oder keinen Text in das Eingabefeld eingegeben hat. Dim myInput As String myInput InputBox("Wie alt sind Sie?", "Alter", "") If StrPtr(myInput) = 0 Then MsgBox "Abbrechen wurde gewählt!" Else If myInput = "" Then MsgBox "Keine Angabe bzgl. des Alters!" Else MsgBox "Aha... " & myInput & " Jahre also!" End if End If Dieser Tipp wurde bereits 26.960 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 TOP! Unser Nr. 1 Neu! sevDataGrid 3.0 Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |