Ob einer Objekt-Variablen ein Objekt zugewiesen ist oder nicht,
prüfen Sie üblicherweise so:
If ObjektVariable Is Nothing Then ...
Das funktioniert soweit bei allen möglichen Objekten ganz gut -
außer bei Picture-Eigenschaften
von Forms, UserControls, PropertyPages, UserDocuments und Visual
Basic-eigenen Steuerelementen.
Enthält die Picture-Eigenschaft bei diesen Objekten kein Bild,
dann gibt sie wider Erwarten nicht Nothing zurück, sondern immer
ein Picture-Objekt.
Statt dessen ist nur die Handle-Eigenschaft dieses Picture-Objekts
gleich 0, wenn dieses kein Bild enthält. Selbst wenn Sie der
Picture-Eigenschaft eines der genannten Objekte Nothing zuweisen,
wird dort lediglich das enthaltene Bild gelöscht und die
Handle-Eigenschaft des Picture-Objekts auf 0 gesetzt.
Ob die Picture-Eigenschaft eines der genannten Objekte nun ein
Bild enthält oder nicht, oder ob eine Objekt-Variable kein oder nur
ein leeres Picture-Objekt enthält, können Sie mit der folgenden
Funktion IsNothing prüfen:
Public Function IsNothing(Obj As Object, Optional ByVal _
CheckHandleIfPicture As Boolean = True) As Boolean
Dim nIsNothing As Boolean
nIsNothing = CBool(Obj Is Nothing)
If Not nIsNothing Then
If CheckHandleIfPicture Then
If TypeOf Obj Is StdPicture Then
nIsNothing = Not CBool(Obj.Handle)
End If
End If
End If
IsNothing = nIsNothing
End Function
 |
Mit dieser Funktion prüfen Sie, ob eine
Objekt-Variable Nothing ist, oder ob ein Picture-Objekt kein
Bild enthält

|
Sie übergeben der Funktion die zu prüfende Objekt-Variable bzw.
Eigenschaft und legen im optionalen Parameter CheckHandleIfPicture
fest, ob bei einem Picture-Objekt bzw. einer als Picture
deklarierten Objekt-Variablen gegebenenfalls zusätzlich das Handle
geprüft werden soll.
Zur Prüfung von gewöhnlichen Objekt-Variablen ist diese
Funktion nicht notwendig, aber sie kann gegebenenfalls beim Codieren
handlicher sein und den Code mitunter auch lesbarer gestalten. Sie
gleicht damit in der Handhabung der vom Prinzip her verwandten
VB-Funktion IsEmpty:
If IsNothing(ObjektVariable) Then ...
Oder:
If Not IsNothing(ObjektVariable) Then ...

|