ich will bei einem Listicongadget auswerten, auf welche Zeile mit der linken Maustaste geklickt wurde.
Das funktioniert allerdings nur, wenn man die Maus nicht gleichzeitig bewegt, sondern fein stille über der Zeile hält.
Bewegt man die Maus (horizontal) beim Klicken, bekomme ich einen Eventtype 14200 vom Windows geliefert.
Gelegentlich erfreut mich Windows auch mit einer -1


Was macht dieses Programm falsch ?
Code: Alles auswählen
Enumeration
#win
#list
EndEnumeration
; Fenster öffnen
OpenWindow(#win,100,100,600,400,"ListIconProblem")
; ein Listicon dazu
CreateGadgetList(WindowID(#win))
ListIconGadget(#List,0,0,550,250,"Spalte 1",190,#PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect)
; eine 2. Spalte anlegen
AddGadgetColumn(#List, 1, "Spalte 2", 100)
;Liste füllen mit 10 Testzeilen
For i=0 To 9
AddGadgetItem(#List,-1,"Zeile "+Str(i)+Chr(10)+"Zeile "+Str(i))
Next
ende=0
; Eventschleife und Zeilenerkennung
Repeat
ev=WaitWindowEvent()
Select ev
Case #PB_Event_CloseWindow
ende=1
Case #PB_Event_Gadget
; was ist passiert ?
Evt=EventType()
Select Evt
Case #PB_EventType_Change; geändert => anderes Element ausgewählt
Debug "Zeile : "+Str(GetGadgetState(#list))+" erkannt !"
Default
If Evt<>0; unbekanntes Ereignis
Debug "unbekannt: "+Str(evt)
; Keine Zeile selektieren
SetGadgetState(#list,-1)
EndIf
EndSelect
EndSelect
Until ende
Vielen Dank und viele Grüße
Hartmut