Aktuelle Zeit: 04.07.2020 05:11

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Problem beim Auslesen ver-oder-ter Werte
BeitragVerfasst: 12.05.2017 12:19 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
Hallo,

ich habe eine Variable, in der ich eine oder mehrere #PB_EventType - Konstanten ver-oder-t ablege.

z.B.:
Code:
eType = #PB_EventType_LeftClick
oder
Code:
eType = #PB_EventType_LeftClick | #PB_EventType_LeftDoubleClick


Nun möchte ich abfragen, welche EventTypes in der Variablen vorhanden sind:
Code:
Debug "#PB_EventType_LeftClick: " + Bool(eType & #PB_EventType_LeftClick = #PB_EventType_LeftClick)
oder
Code:
Debug "#PB_EventType_LeftDoubleClick: " + Bool(eType & #PB_EventType_LeftDoubleClick = #PB_EventType_LeftDoubleClick)


Mein Problem ist, dass #PB_EventType_LeftClick den Wert 0 hat. Ich bekomme also mit der Abfrage Bool(eType & #PB_EventType_LeftClick = #PB_EventType_LeftClick) immer eine 1 zurück.

Wie kann man das geschickt lösen?

hier nochmal der gesamte Code zum spielen:
Code:
eType = #PB_EventType_LeftClick

Debug "eType = #PB_EventType_LeftClick"
Debug "#PB_EventType_LeftClick: " + Bool(eType & #PB_EventType_LeftClick = #PB_EventType_LeftClick)
Debug "#PB_EventType_LeftDoubleClick: " + Bool(eType & #PB_EventType_LeftDoubleClick = #PB_EventType_LeftDoubleClick)
Debug "------------------"

eType = #PB_EventType_LeftDoubleClick

Debug "eType = #PB_EventType_LeftDoubleClick"
Debug "#PB_EventType_LeftClick: " + Bool(eType & #PB_EventType_LeftClick = #PB_EventType_LeftClick)
Debug "#PB_EventType_LeftDoubleClick: " + Bool(eType & #PB_EventType_LeftDoubleClick = #PB_EventType_LeftDoubleClick)
Debug "------------------"

eType = #PB_EventType_LeftClick | #PB_EventType_LeftDoubleClick

Debug "eType = #PB_EventType_LeftClick | #PB_EventType_LeftDoubleClick"
Debug "#PB_EventType_LeftClick: " + Bool(eType & #PB_EventType_LeftClick = #PB_EventType_LeftClick)
Debug "#PB_EventType_LeftDoubleClick: " + Bool(eType & #PB_EventType_LeftDoubleClick = #PB_EventType_LeftDoubleClick)
Debug "------------------"

Debugger hat geschrieben:
eType = #PB_EventType_LeftClick
#PB_EventType_LeftClick: 1
#PB_EventType_LeftDoubleClick: 0
------------------
eType = #PB_EventType_LeftDoubleClick
#PB_EventType_LeftClick: 1 <--- gibt 1 aus. sollte 0 sein.
#PB_EventType_LeftDoubleClick: 1
------------------
eType = #PB_EventType_LeftClick | #PB_EventType_LeftDoubleClick
#PB_EventType_LeftClick: 1
#PB_EventType_LeftDoubleClick: 1
------------------


Danke im Voraus & Grüße ... Peter

__________________________________________________
Thread verschoben
Anfänger>Spiderbasic
13.05.2017
RSBasic

_________________
Schrödingers Smiley :):


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Problem beim Auslesen ver-oder-ter Werte
BeitragVerfasst: 12.05.2017 13:03 
Offline
Benutzeravatar

Registriert: 01.04.2007 20:18
Das Problem an der Sache ist, das die EventTypes so nicht kombinierbar sind.
LeftClick ist 0 und wenn 0 irgendwo dazukommt, ändert sich ja nichts.

_________________
PureBasic 5.72 LTS (Windows x86/x64) | Windows10 Pro x64 | Z370 Extreme4 | i7 8770k | 32GB RAM | iChill GeForce RTX 2080 Super | HAF XF Evo​​


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Problem beim Auslesen ver-oder-ter Werte
BeitragVerfasst: 12.05.2017 13:17 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Am besten konvertierst du die Konstanten in eigene Konstanten mit anderen Werten (1, 2, 4, 8, 16, ...), dann kannst du besser abfragen.

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Problem beim Auslesen ver-oder-ter Werte
BeitragVerfasst: 13.05.2017 11:33 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
@Bisonte & RSBasic: Danke für Eure Rückmeldungen!

Tja, schade, kann man nix machen.

Ich hatte gehofft, dass ich etwas übersehen hätte. Eigene Konstanten kann ich leider nicht nehmen. Das müssen die originalen sein. Zu ärgerlich, dass ausgerechnet LeftClick den Wert 0 hat.

Grüße ... Peter

_________________
Schrödingers Smiley :):


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Problem beim Auslesen ver-oder-ter Werte
BeitragVerfasst: 13.05.2017 15:17 
Offline

Registriert: 29.08.2004 13:18
was genau hast du vor? Du kannst auch nicht einfach irgendwas kombinieren. Wenn du bspw folgende Konstanten hast
Code:
#a=1
#b=2
#c=3

dann würde folgendes
[code]
bool ((#a+#b)&#c=#c)
Wahr ergeben!

_________________
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Problem beim Auslesen ver-oder-ter Werte
BeitragVerfasst: 13.05.2017 15:48 
Offline
Benutzeravatar

Registriert: 29.08.2004 08:37
Kiffi hat geschrieben:
Ich hatte gehofft, dass ich etwas übersehen hätte. Eigene Konstanten kann ich leider nicht nehmen. Das müssen die originalen sein.
Woher bekommst du denn den Wert, den du überprüfen willst?

_________________
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Problem beim Auslesen ver-oder-ter Werte
BeitragVerfasst: 13.05.2017 15:57 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
GPI hat geschrieben:
was genau hast du vor?

wie im Eingangsposting geschrieben: Ich möchte PB_EventType - Konstanten verodern (um sie dann an eine Procedure zu übergeben).

Hintergrund ist, dass ich für SpiderBasic User-Gadgets erstelle. Diese sollen dann mit einer eigenen BindGadgetEvent() - Funktion versehen werden.

Pseudo-Code:
Code:
BlaBlaGadget(myGadget, x, y, w, h, ...)
BindGadgetEventEx(myGadget, @myCallback(), #PB_EventType_LeftDoubleClick)

in BindGadgetEventEx() muss ich die übergebenen PB_EventType-Konstanten auswerten. Und da ist #PB_EventType_LeftClick wg. der 0 immer gesetzt.

Grüße ... Peter

_________________
Schrödingers Smiley :):


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Problem beim Auslesen ver-oder-ter Werte
BeitragVerfasst: 13.05.2017 16:01 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Du kannst auch in der Ziel-Prozedur per BindGadgetEvent() auf EventType() zugreifen und musst nichts übergeben.

\\Edit:
BindGadgetEvent() hat geschrieben:
Die regulären Funktionen wie EventGadget(), EventWindow(), EventMenu(), EventType() und EventData() sind innerhalb des Callbacks verfügbar, um weitere Informationen über das Ereignis zu erhalten.

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Problem beim Auslesen ver-oder-ter Werte
BeitragVerfasst: 13.05.2017 16:21 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Vielleicht den Eventtype auf eine eigenen Type wandeln...
Code:
#My_EventType_LeftClick = #PB_EventType_FirstCustomValue

Procedure GlobalEventHandler()
  Select Event()
    Case #PB_Event_Gadget
      Select EventType()
        Case #PB_EventType_LeftClick
          PostEvent(#PB_Event_Gadget, #Null, EventGadget(), #My_EventType_LeftClick)
      EndSelect
     
  EndSelect
EndProcedure

Procedure EventGadgetHander()
  Select EventType()
    Case #My_EventType_LeftClick
      Debug "LeftClick"
    Case #PB_EventType_RightClick
      Debug "RightClick"
     
  EndSelect
EndProcedure

Procedure Main()
  If OpenWindow(0, #PB_Ignore, #PB_Ignore, 200, 100, "Test Event´s", #PB_Window_SystemMenu)
    ButtonGadget(0, 5, 5, 120, 25, "Test Event")
    ListViewGadget(1, 5, 40, 120, 25)
    ; Bind
    BindEvent(#PB_Event_Gadget, @GlobalEventHandler())
    BindGadgetEvent(0, @EventGadgetHander())
    BindGadgetEvent(1, @EventGadgetHander())
    ; Mainloop
    Repeat
      Select WaitWindowEvent()
        Case #PB_Event_CloseWindow
          Break
      EndSelect
    ForEver
  EndIf
EndProcedure : Main()

_________________
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf My Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Problem beim Auslesen ver-oder-ter Werte
BeitragVerfasst: 13.05.2017 16:26 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
mk-soft hat geschrieben:
Vielleicht den Eventtype auf eine eigenen Type wandeln...

Kiffi hat geschrieben:
Eigene Konstanten kann ich leider nicht nehmen.

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye