Seite 1 von 1

"Or" Operator wieder entfernen?

Verfasst: 09.12.2006 14:44
von Jilocasin
Okay.. ich hab mal eine ganz dumme Frage :oops: :lol:

Ich hab ein CheckboxGadget, das bei Aktivierung folgendes Event machen soll:

Code: Alles auswählen

Select EventGadget()
...
Case CheckboxBold
  If GetGadgetState(CheckboxBold)
   FontStyle | #PB_Font_Bold
  Else
   MachDenOROperatorWiederWeg() <---
  EndIf
  ...
Also bei Aktivierung soll die Variable "TextFontStyle" per OR-Operator um #PB_Font_Bold erweitert werden. Wie bekomme ich den dann bei Deaktivierung wieder aus der Variable heraus?

Verfasst: 09.12.2006 14:50
von ts-soft
Ungefähr so:

Code: Alles auswählen

Select EventGadget()
...
Case CheckboxBold
  If GetGadgetState(CheckboxBold)
   FontStyle | #PB_Font_Bold
  Else
   FontStyle = FontStyle & - #PB_Font_Bold
  EndIf
  ...
Mußte nochmal testen :)

Verfasst: 09.12.2006 14:51
von Kaeru Gaman
das gegenteil von OR ist AndNot

also, probier mal

Code: Alles auswählen

FontStyle & ~#PB_Font_Bold
...bin nicht ganz sicher, aber sollte klappen...

Verfasst: 09.12.2006 14:55
von Jilocasin
danke kaeru :allright:
das klappt perfekt
:praise:

Verfasst: 09.12.2006 15:31
von tobe
ich würde es so machen:

Code: Alles auswählen

FontStyle ! #PB_Font_Bold

Verfasst: 09.12.2006 15:39
von Kaeru Gaman
XOR schaltet allerdings ein bit UM, togglet es.

d.h. das ergebnis ist abhängig davon, welcher zustand vorher bestand.

mit Or bzw. AndNot kann man unabhängig vom vorherigen zustand mit sicherheit ein- bzw. abschalten.

Verfasst: 09.12.2006 16:00
von tobe
stimmt, da hast du recht.