Panel-Gadget gibt EventType-Wert 1 zurück?

Für allgemeine Fragen zur Programmierung mit PureBasic.
es_91
Beiträge: 411
Registriert: 25.01.2011 04:48

Panel-Gadget gibt EventType-Wert 1 zurück?

Beitrag von es_91 »

Hi.

Schaut Euch mal bitte diesen Programmtext hier an:

Code: Alles auswählen

OpenWindow (#PB_Any, 0, 0, 400, 200, "Panel", #PB_Window_SystemMenu)

Panel = PanelGadget (#PB_Any, 15, 15, 370, 170)

AddGadgetItem (Panel, 0, "Item 1")
AddGadgetItem (Panel, 1, "Item 2")

CloseGadgetList ()

Repeat
  
  Select WaitWindowEvent ()
      
    Case #PB_Event_CloseWindow
      
      Break
      
    Case #PB_Event_Gadget
      
      If EventGadget () = Panel
        
        Select EventType ()
          
          Case #PB_EventType_Change
            
            Debug "Seitenwechsel (#PB_EventType_Change = 768)"
            
          Default
            
            Debug EventType ()
            
        EndSelect
        
      EndIf
      
  EndSelect
  
ForEver
Ich hoffe, er verdeutlicht meine Frage: Was ist der Event-Typ mit dem Wert 1? Ist er dokumentiert? Hat er einen Namen?

Woran mir eigentlich liegt, ist es, herauszufinden, ob ich bei einem Wechseln des Panel-Elements mich auf die direkte Abfolge von #PB_EventType_Change und dem Wert 1 verlassen kann. Ich möchte nämlich ein kleines Popup-Menü anzeigen wann immer ein Panel-Element geklickt wird, ohne das es sich dabei um einen Eintragwechsel gehandelt hat. Dazu führe ich folgende Abfragen in einer Window-Ereignisschleife durch...

Code: Alles auswählen

; ...

Case Panel
  
  If EventType () = 1
  
    If Not PreviousEventType = 768
    
      ; DisplayPopupMenu ()
      
    EndIf
    
    PreviousEventType = #Null
      
  ElseIf EventType () = 768
          
    PreviousEventType = 768
          
  EndIf

; ...
...die das Popup-Menü nur dann anzeigt, wenn der Wert 1 direkt auf #PB_EventType_Change folgt.

...würde natürlich nicht funktionieren, wenn dazwischen ein Leerlauf ist, nur scheint es den in der Praxis (bei mir, jedenfalls) nicht zu geben...

/Nachtrag: Ich währe direkt im "Fragen"-Bereich für eine Forensektion namens "Gadgets", damit solche Fragen nicht den ohnehin überfüllten "Allgemein"-Bereich belasten! ;)
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

Re: Panel-Gadget gibt EventType-Wert 1 zurück?

Beitrag von ts-soft »

Wenn der Rückgabewert unterstützt wäre, wäre es ein #PB_EventType_RightClick,
aber da der Wert nicht unterstützt wird, ist er also ohne Bedeutung und es kann
sich nicht darauf verlassen werden, diesen auszuwerten.

Dies gilt für alle Rückgabewerte, die nicht dokumentiert sind. Ohne Bedeutung. Ignorieren.

Aber er will es wieder wissen :lol:
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
es_91
Beiträge: 411
Registriert: 25.01.2011 04:48

Re: Panel-Gadget gibt EventType-Wert 1 zurück?

Beitrag von es_91 »

:mrgreen:
Antworten