Seite 1 von 1

Auswahl(Spalte/Zeile) per Klick im Listicon

Verfasst: 02.02.2011 10:42
von Velindos
Hallo,
möchte einen Wert im ListIconGadget gezielt mittels Klick einen Funktion hinterlegen. Dazu brauche ich eine gezielte Auswahl auf Zeile/Spalte.

Code: Alles auswählen

  If OpenWindow(0, 0, 0, 330, 220, "Eventtypes Beispiel...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ListIconGadget(1, 10, 10, 250, 200, "ListIcon0", 80, #PB_ListIcon_GridLines)
    AddGadgetColumn(1, 1, "Column 0"+Str(index), 80)
    AddGadgetColumn(1, 2, "Column 1"+Str(index), 80)

     For a= 1 To 12
       AddGadgetItem(1, -1, "Line "+Str(a)+Chr(10)+"Level "+Str(a)+Chr(10)+"Point "+Str(a))
       ;AddGadgetItem(1, -1, "Level "+Str(a))

     Next a
  
     Repeat
       Event = WaitWindowEvent()
       
       Select Event
       
         Case #PB_Event_Gadget
           Select EventGadget()
             Case 1 
               Select EventType()
                 Case #PB_EventType_LeftClick        : Debug "Klick mit der linken Maustaste"
                 Case #PB_EventType_RightClick       : Debug "Klick mit der rechten Maustaste"
                 Case #PB_EventType_LeftDoubleClick  : Debug "Doppelklick mit der linken Maustaste"
                 Case #PB_EventType_RightDoubleClick : Debug "Doppelklick mit der rechten Maustaste"
               EndSelect
           EndSelect
       
       EndSelect
     Until Event = #PB_Event_CloseWindow
  EndIf
Wie Frage ich gezielt eine Spalte/Zeile im Listicon ab?
Gruss ... Velindos

Re: Auswahl(Spalte/Zeile) per Klick im Listicon

Verfasst: 02.02.2011 10:56
von STARGÅTE
Ich denke dieser Code aus dem Codearchiv wird dir sicher weiterhelfen:
ListIcon_Editable.pb

Dort kann man sogar direkt die Felder editieren :allright:

Re: Auswahl(Spalte/Zeile) per Klick im Listicon

Verfasst: 02.02.2011 15:21
von Velindos
Hallo,
danke für das Beispiel, das ist ja was für Profis! Wollte eigentlich nur den einzelnen Wert anklicken und daraus was berechnen!
Werde mich mal reinknien! Trotzalledem Danke!
Gruss ... Velindos

Re: Auswahl(Spalte/Zeile) per Klick im Listicon

Verfasst: 02.02.2011 16:51
von hjbremer
die simple Methode

Code: Alles auswählen

Procedure LvMausclick(lvid,*p.Point)
Protected lvhit.LVHITTESTINFO
  
  GetCursorPos_(*p)  ;wo ist Maus 
  MapWindowPoints_(0, lvid, *p, 1) ;Cursorpos mappen zum LV  
  lvhit\pt\x = *p\x
  lvhit\pt\y = *p\y
  SendMessage_(lvid, #LVM_SUBITEMHITTEST, 0, lvhit)                

  *p\y = lvhit\iItem      ;row ab 0
  *p\x = lvhit\iSubItem   ;col ab 0
  
EndProcedure

OpenWindow(0,0,0,640,480,"#LVM_SUBITEMHITTEST",$CF0001) 

lv = ListIconGadget(#PB_Any,0,0,640,480,"bla",50,#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect) 
AddGadgetColumn(lv,1,"Column 1",210) 
AddGadgetColumn(lv,2,"Column 2",210) 
AddGadgetColumn(lv,3,"Column 3",215) 
For i = 0 To 32 
  linestr.s = LSet(Str(i),3," ") 
  AddGadgetItem(lv, -1, Chr(10)+"Text on Line "+linestr+" in Column 1"+Chr(10)+"Text on Line "+linestr+" in Column 2"+Chr(10)+"Text on Line "+linestr+" in Column 3") 
Next 

SetActiveGadget(lv)

Repeat
   Event = WaitWindowEvent()
   
   Select event
      Case #PB_Event_Gadget
         If EventGadget() = lv 
            Select EventType()               
               Case #PB_EventType_LeftClick
                  LvMausclick(GadgetID(lv), p.Point)
                  Debug "Col ab null: " + Str(p\x)
                  Debug "row ab null: " + Str(p\y)
            EndSelect
         EndIf
   EndSelect
   
Until Event = #PB_Event_CloseWindow                  

Re: Auswahl(Spalte/Zeile) per Klick im Listicon

Verfasst: 02.02.2011 17:16
von Velindos
Hallo,
das ist ein Weltmeisterstück, besten Dank. Habs gleich ausprobiert und Funkt. Zum Verstehen werde ich noch ein weilchen brauchen(ca.2-3Jahre). Spass ohne, Danke für das Beispiel!
Gruss ... Velindos

Re: Auswahl(Spalte/Zeile) per Klick im Listicon

Verfasst: 02.02.2011 23:08
von hjbremer
zum Verstehen gehts hier längs --> http://msdn.microsoft.com/en-us/library ... S.85).aspx :mrgreen:

Re: Auswahl(Spalte/Zeile) per Klick im Listicon

Verfasst: 03.02.2011 14:23
von Velindos
Hallo,
danke für eueren Tip, das verstehen wird noch ein weilchen dauern!
Gruss ... Velindos