Manchmal sind es einfach die kleinen Dinge, die einem selbst bei banalen Aufgaben Tipparbeit sparen können. So zum Beispiel beim Umgang mit Nullen und Einsen, die hin und wieder anstelle der "echten" Bool'schen Werte False und True zur Repräsentation eines binären Zustandes verwendet werden (so beispielsweise bei der CheckBox).
Das Umschalten zwischen False und True ("Negieren") ist aufgrund der in Visual Basic eingebauten Logik kein Problem:
A = Not A
Doch das Umschalten zwischen 0 und 1 können Sie damit nicht bewirken, da in der binären Logik "Not 1" immer noch nicht 0 (False) ist. Mit anderen VB-Mitteln können Sie dennoch den gewünschten Effekt erzielen:
A = Abs(A - 1)
Voraussetzung ist natürlich, dass in A nur die beiden Werte 0 und 1 auftreten dürfen.
Wie Sie ein True in eine schlichte 1 überführen, liegt hoffentlich sowieso auf der Hand:
Dim A As Boolean
Dim B As Integer
B = Abs(A)
Die Umkehrung, von der 1 zum True? Na gut - es könnte ja sein, dass sie wirklich nicht drauf kommen:
A = CBool(B)
Ein anderes, ebenfalls binär behaftetes Code-Fragment kennen Sie sicher auch:
Ergebnis = (X <> 0)
Der Ausdruck in der Klammer kann natürlich komplexer sein. Aber "Ergebnis" ist trotzdem Boolean. Wenn Sie hier wieder nur 0 oder 1 gebrauchen können (etwa, um eine CheckBox mit dem Resultat zu "füttern"), ...nun ja, der Vollständigkeit halber:
Check1.Value = Abs(X <> 0)
|