Seite 1 von 1

ListIconView & Doppelklick Action

Verfasst: 21.12.2014 17:24
von joebusch
Hallo,
bin neu hier und habe bis dato vorwiegend in AutoIT gescriptet. Nun wollte ich ein Projekt in PB (eigentlich Spiderbasic) versuchen.
Nun bin ich gleich auf ein Problem gestossen, wobei ich leider nicht weiter komme. Bei einem Doppelklick auf ein ListIconGadget soll eine Funktion aufgerufen werden.
Dabei natürlich als erstes das aktive ListItem (Index --> Text) auslesen. Dabei will ich das BindGadgetEvent nutzen,
da in Spiderbasic Eventloops ja nicht so angesagt sind. Anbei ein Testcode. Irgendwie wird da nichts zurückgegeben.
Anregungen sind "very warm willkommen" ;-).


Code: Alles auswählen

Global Panel_CmdToolBox , Window_CmdToolBox, CmdListKey


Global NewMap Cmd_Section_System.s()
  ; Regular way to add an element
  Cmd_Section_System("ServiceStop") = "Dienst Stoppen"
  Cmd_Section_System("ServiceStart") = "Dienst Starten"
  Cmd_Section_System("ServiceStatus") = "Dienst Status abfragen"


  Procedure SizeCmdToolBoxHandler()
    Debug "Size event on Toolwindow #" + EventWindow()
    ResizeGadget(Panel_CmdToolBox,0,0, WindowWidth(EventWindow()), WindowHeight(EventWindow()))
    ;ResizeGadget(CmdToolBox_CmdListKey,0,0, GadgetWidth(Panel_CmdToolBox) ,GadgetHeight(Panel_CmdToolBox))
   ;ResizeGadget(CmdToolBox_CmdListDesc,0,0, GadgetWidth(Panel_CmdToolBox) / 2,#PB_Ignore)
  EndProcedure
  
  Procedure ListCmdToolBoxHandler()
    Debug "Liste"
    ;Result = GetGadgetData(EventGadget())
    Debug "ListDoubleKlick " +  Result
    
  EndProcedure  

  Procedure CloseWindowEvent()
  CloseWindow(EventWindow())
EndProcedure
  
Procedure OpenWindow_Cmd_Toolbox(x = 0, y = 0, width = 400, height = 300)
  
   ScrCmd_ColorBack = RGB(233,233,233)
  
  LangStr_WinTitle$ = "Script ToolBox" 
  LngStr_LblService$ = "Service"
  LngStrg_WaitService$ = "auf Ausführung warten" 
  LangStr_BtnOK$ = "Ok"
  LangStr_BtnChancel$ = "Chancel"
  
  

  Window_CmdToolBox = OpenWindow(#PB_Any, x, x, width, height, LangStr_WinTitle$, #PB_Window_SystemMenu | #PB_Window_Tool |#PB_Window_SizeGadget | #PB_Window_ScreenCentered)
    BindEvent(#PB_Event_SizeWindow, @SizeCmdToolBoxHandler())
    BindEvent(#PB_Event_CloseWindow, @CloseWindowEvent())
  
      CmdListKey =  ListIconGadget(#PB_Any, 0, 0,width, height,"" ,120)
      CmdListDesc =   AddGadgetColumn(CmdListKey, 1, "",400)
       ForEach Cmd_Section_System()
          Debug Cmd_Section_System()
          AddGadgetItem(CmdListKey , -1, MapKey(Cmd_Section_System())  +Chr(10)+Cmd_Section_System())
       Next
      
      ;ResizeGadget(0, #PB_Ignore, #PB_Ignore, 300, #PB_Ignore)
      
      BindGadgetEvent(CmdListKey,@ListCmdToolBoxHandler(),#PB_Event_LeftDoubleClick)
  StickyWindow(Window_CmdToolBox ,1)
  
  
  Repeat
    Event = WaitWindowEvent()
    
 
  Until Event = #PB_Event_CloseWindow


  
EndProcedure

OpenWindow_Cmd_Toolbox()
Edit by NicTheQuick: Quote-Tags in Code-Tags geändert

Re: ListIconView & Doppelklick Action

Verfasst: 21.12.2014 17:33
von Kiffi
BindGadgetEvent(CmdListKey,@ListCmdToolBoxHandler(),#PB_EventType_LeftDoubleClick)

mit wärmsten Grüßen ... Peter ;)

Re: ListIconView & Doppelklick Action

Verfasst: 21.12.2014 17:59
von joebusch
Kiffi hat geschrieben:BindGadgetEvent(CmdListKey,@ListCmdToolBoxHandler(),#PB_EventType_LeftDoubleClick)

mit wärmsten Grüßen ... Peter ;)
Promte Bedienung, dich merke ich mir ;-)
Muss ich nochmal lesen Unterschied Event und Eventtype.
Das klicken erkennt er jetzt, aber das auslesen des aktiven Items geht nicht, hmm.
Ich denke in der Event Callback Funktion, haut das nicht hin ?
Kommt immer Null raus.
Result = GetGadgetData(EventGadget())

Re: ListIconView & Doppelklick Action

Verfasst: 21.12.2014 18:25
von Kiffi
joebusch hat geschrieben:Das klicken erkennt er jetzt, aber das auslesen des aktiven Items geht nicht, hmm.
Das Auslesen des selektierten ListIconItems geht mit GetGadgetState().

Grüße ... Peter

Re: ListIconView & Doppelklick Action

Verfasst: 21.12.2014 18:36
von joebusch
Danke, geht puper, nu :allright: