Auswahl(Spalte/Zeile) per Klick im Listicon

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Auswahl(Spalte/Zeile) per Klick im Listicon

Beitrag 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
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

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

Beitrag 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:
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

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

Beitrag 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
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

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

Beitrag 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                  
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

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

Beitrag 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
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

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

Beitrag von hjbremer »

zum Verstehen gehts hier längs --> http://msdn.microsoft.com/en-us/library ... S.85).aspx :mrgreen:
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

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

Beitrag von Velindos »

Hallo,
danke für eueren Tip, das verstehen wird noch ein weilchen dauern!
Gruss ... Velindos
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Antworten