von DPunch » Mi, 16.03.2011 12:29
Aloha
clag hat geschrieben:
aber was ist, wenn mal etwas Anderes wie 1 oder 0 übergeben wird?
Das kommt vermutlich nicht vor aber ausschließen kann man es auch nicht .....
Doch, das kann sogar in diesem konkreten Fall auftreten, nämlich wenn die Option "Dreifacher Status" des Markierfeldes aktiviert wird (Rückgabewert 2).
Davon abgesehen kannst Du Dir sicher sein, dass ein nicht markiertes Markierfeld immer den Status False bzw den dazu äquivalenten numerischen Wert zurückliefern wird und ein markiertes entsprechend den Status True bzw einen dazu äquivalenten numerischen Wert.
Karolus hat geschrieben:Hallo
Ich bin etwas überrascht das man dort explizit mit cbool konvertieren muss, ich meine das war in früheren Ooo-versionen nicht nötig ?!
Das ergibt sich nur durch die Verwendung von "NOT". Ein numerischer Wert wird dadurch um 1 erhöht und ins negative verkehrt. (Interner numerischer Wert für FALSE = 0, TRUE = -1)
"State" eines Markierfeldes gibt die Werte 0,1 oder 2 zurück. Die Verwendung von "NOT" macht daraus -1,-2 oder -3, was wiederum durch die implizite Typkonvertierung bei der Zuweisung immer als TRUE ausgewertet wird.
Ohne die Verwendung von "NOT" ist keine Konvertierung nötig, 0 wird immer als FALSE ausgeweret, alles andere als TRUE.
Aloha
[quote="clag"]
aber was ist, wenn mal etwas Anderes wie 1 oder 0 übergeben wird?
Das kommt vermutlich nicht vor aber ausschließen kann man es auch nicht .....[/quote]
Doch, das kann sogar in diesem konkreten Fall auftreten, nämlich wenn die Option "Dreifacher Status" des Markierfeldes aktiviert wird (Rückgabewert 2).
Davon abgesehen kannst Du Dir sicher sein, dass ein nicht markiertes Markierfeld immer den Status False bzw den dazu äquivalenten numerischen Wert zurückliefern wird und ein markiertes entsprechend den Status True bzw einen dazu äquivalenten numerischen Wert.
[quote="Karolus"]Hallo
[code]myRange.isvisible = not cbool ( MF1.state)[/code]
Ich bin etwas überrascht das man dort explizit mit cbool konvertieren muss, ich meine das war in früheren Ooo-versionen nicht nötig ?![/quote]
Das ergibt sich nur durch die Verwendung von "NOT". Ein numerischer Wert wird dadurch um 1 erhöht und ins negative verkehrt. (Interner numerischer Wert für FALSE = 0, TRUE = -1)
"State" eines Markierfeldes gibt die Werte 0,1 oder 2 zurück. Die Verwendung von "NOT" macht daraus -1,-2 oder -3, was wiederum durch die implizite Typkonvertierung bei der Zuweisung immer als TRUE ausgewertet wird.
Ohne die Verwendung von "NOT" ist keine Konvertierung nötig, 0 wird immer als FALSE ausgeweret, alles andere als TRUE.