
oder mit
Code: Alles auswählen
Case #PB_EventType_LeftClick, #PB_EventType_LeftDoubleClick
Code: Alles auswählen
Case #PB_EventType_LeftClick, #PB_EventType_LeftDoubleClick
Yep, und wenn man eine Nacht drüber geschlafen hat, bekommt man manchmal (wieder) den richtigen Blickwinkel auf das Problem.tobe hat geschrieben:das mit den klicks verlieren passiert bei mir nur wenn ich einen Doppelklick auf ein item mache, daher kann man das einfach ignorieren
Code: Alles auswählen
#main_win = 1
#main_tree = 3
Procedure.L ugs_isTGitemtextclicked()
Protected ItemHandle.L
Protected TVHitTest.TV_HITTESTINFO
Protected TVItem.TV_ITEM
TVHitTest\Pt\x = WindowMouseX(#main_win) - GadgetX(#main_tree)
TVHitTest\Pt\y = WindowMouseY(#main_win) - GadgetY(#main_tree)
ItemHandle = SendMessage_(GadgetID(#main_tree), #TVM_HITTEST, 0, @TVHitTest)
If ItemHandle <> 0
If TVHitTest\Flags = #TVHT_ONITEMLABEL
ProcedureReturn #True
EndIf
EndIf
ProcedureReturn #False
EndProcedure
If OpenWindow(#main_win, 50, 50, 355, 250, "TreeGadget", #PB_Window_SystemMenu ) And CreateGadgetList(WindowID(#main_win))
TreeGadget(#main_tree, 5, 5, 160, 230, #PB_Tree_AlwaysShowSelection )
AddGadgetItem(#main_tree, -1, "Normal Item 1", 0, 0)
AddGadgetItem(#main_tree, -1, "Node 1", 0, 0)
AddGadgetItem(#main_tree, -1, "Sub-Item 1-1", 0, 1)
AddGadgetItem(#main_tree, -1, "Sub-Item 1-2", 0, 1)
AddGadgetItem(#main_tree, -1, "Sub-Item 1-3", 0, 1)
AddGadgetItem(#main_tree, -1, "Sub-Item 1-4", 0, 1)
AddGadgetItem(#main_tree, -1, "Normal Item 2", 0, 0)
AddGadgetItem(#main_tree, -1, "Node 2", 0, 0)
AddGadgetItem(#main_tree, -1, "Sub-Item 2-1", 0, 1)
AddGadgetItem(#main_tree, -1, "Sub-Item 2-2", 0, 1)
AddGadgetItem(#main_tree, -1, "Sub-Node 3", 0, 1)
AddGadgetItem(#main_tree, -1, "Sub-Sub-item 3-1", 0, 2)
AddGadgetItem(#main_tree, -1, "Sub-Sub-Item 3-2", 0, 2)
AddGadgetItem(#main_tree, -1, "Sub-Sub-Item 3-3", 0, 2)
AddGadgetItem(#main_tree, -1, "Sub-Sub-Item 3-4", 0, 2)
StringGadget(#String,170,100,100,20,"")
SetActiveGadget(#main_tree)
SetGadgetState(#main_tree, 0)
SetGadgetText(#String, GetGadgetItemText(#main_tree, GetGadgetState(#main_tree)))
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case #main_tree
Select EventType()
Case #PB_EventType_LeftClick
If ugs_isTGitemtextclicked() = #True
Debug "item-text getroffen"
SetGadgetText(#String, GetGadgetItemText(#main_tree, GetGadgetState(#main_tree)))
Else
Debug "nicht den item-text getroffen"
EndIf
EndSelect
EndSelect
EndSelect; WaitWindowEvent()
ForEver
EndIf