"Or" Operator wieder entfernen?

Anfängerfragen zum Programmieren mit PureBasic.
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

"Or" Operator wieder entfernen?

Beitrag 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?
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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 :)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

danke kaeru :allright:
das klappt perfekt
:praise:
Bild
Benutzeravatar
tobe
Beiträge: 146
Registriert: 14.09.2006 17:33
Wohnort: Oktoberfest

Beitrag von tobe »

ich würde es so machen:

Code: Alles auswählen

FontStyle ! #PB_Font_Bold
PureBasic 4.40 (Windows - x86)
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
tobe
Beiträge: 146
Registriert: 14.09.2006 17:33
Wohnort: Oktoberfest

Beitrag von tobe »

stimmt, da hast du recht.
PureBasic 4.40 (Windows - x86)
Antworten