[gelöst] Problem mit #PB_Event_Gadget / EventGadget()

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

[gelöst] Problem mit #PB_Event_Gadget / EventGadget()

Beitrag von scholly »

moin, moin...

Mein Problemcode:

Code: Alles auswählen

;In real lese ich mehr aus einer Ini ein
Dim top.s(8)
top(1) = "Speicherort"
top(2) = "Kategorien"
top(3) = "Titel"
top(4) = "Genre"
top(5) = "Artist"
top(6) = "Owner"
top(7) = "Todo"

If OpenWindow(0, 216, 0, 300, 300, "TreeGadget with Functions", #PB_Window_TitleBar | #PB_Window_SystemMenu ) 
  If CreateGadgetList(WindowID(0)) 

    TreeGadget(20, 10, 10, 270, 190) 
    For counter = 1 To 7
      AddGadgetItem(20, -1, top(counter))
    Next
    
  EndIf 
EndIf 
  
Repeat

  Select WaitWindowEvent()

    Case #PB_Event_CloseWindow; Close-Button gedrückt
      Quit = #True

    Case #PB_Event_Gadget                     ; Gadget-Events abarbeiten
    
      Select EventGadget()
        Case 20                               
          Debug "Eintrag (GetGadgetItemText)  : " + GetGadgetItemText(20, GetGadgetState(20), 0) 
      EndSelect; Select EventGadget()
      
  EndSelect; WaitWindowEvent()

Until Quit = #True

End
Wenn ich einen Eintrag selektiere, erhalte ich 2 Debug-Zeilen zu dem Eintrag.
Wenn ich blind ins Gadget klicke, eine Debug-Zeile zu dem selektierten Eintrag.

Eigentlich wollte ich nur dann eine erhalten, wenn ich einen Eintrag neu selektiere.
Was mache ich falsch ?

tia... scholly
Zuletzt geändert von scholly am 17.05.2008 16:52, insgesamt 2-mal geändert.
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Du musst EventType() einbauen.
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

EventType abfgragen :wink:

Code: Alles auswählen

;In real lese ich mehr aus einer Ini ein
Dim top.s(8)
top(1) = "Speicherort"
top(2) = "Kategorien"
top(3) = "Titel"
top(4) = "Genre"
top(5) = "Artist"
top(6) = "Owner"
top(7) = "Todo"

If OpenWindow(0, 216, 0, 300, 300, "TreeGadget with Functions", #PB_Window_TitleBar | #PB_Window_SystemMenu )
  If CreateGadgetList(WindowID(0))

    TreeGadget(20, 10, 10, 270, 190)
    For counter = 1 To 7
      AddGadgetItem(20, -1, top(counter))
    Next
   
  EndIf
EndIf
 
Repeat

  Select WaitWindowEvent()

    Case #PB_Event_CloseWindow; Close-Button gedrückt
      Quit = #True

    Case #PB_Event_Gadget                     ; Gadget-Events abarbeiten
      type = EventType()
      Select EventGadget()
        Case 20
          Select type                               
            Case #PB_EventType_LeftClick : Debug "LeftClick: Eintrag (GetGadgetItemText)  : " + GetGadgetItemText(20, GetGadgetState(20), 0)
            Case #PB_EventType_Focus     : Debug "Focus: Eintrag (GetGadgetItemText)  : " + GetGadgetItemText(20, GetGadgetState(20), 0)
            Case #PB_EventType_Change    : Debug "Change: Eintrag (GetGadgetItemText)  : " + GetGadgetItemText(20, GetGadgetState(20), 0)
          EndSelect  
      EndSelect; Select EventGadget()
     
  EndSelect; WaitWindowEvent()

Until Quit = #True

End
FF :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

Merci vielmals,

besonders, da ich mit dem neuen Code quasi schon eine Antwort auf eine Frage bekommen habe, die eigentlich erst später aufgetaucht wäre ;)

bis denne... scholly
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Antworten