ListIconGadget Spalte mit Checkbox

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
marcelx
Beiträge: 429
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

ListIconGadget Spalte mit Checkbox

Beitrag von marcelx »

Hallo,

mit diese Code wird eine Spalte an der erste Stelle mit CheckBox erzeugt.

Wie kann ich eine Spalte wie mit AddGadgetColumn ganz Links/Rechts oder an eine andere Stelle erzeugen?

Danke

Code: Alles auswählen

Structure ProgramDataCB
  QuitValue.i
  WindowMutex.i
  LastWindow.s
  
  CurrentLine.i
  CurrentRecord.s
  
  CurrentCheckedRow.i ; Here I am!
  
  CurrentDirectory.s
  DatabaseDirectory.s
  TemporaryDirectory.s
  RepeaterDirectory.s
  
  DatabaseName.s
  DatabaseHandle.i
  
  SearchCueFont.i
  SearchNormalFont.i
  SearchCueText.s
  
  CurrentDate.s
EndStructure

Global Program.ProgramDataCB

#lstData=7

Procedure WndProc(hwnd, uMsg, wParam, lParam)
  Select uMsg
    Case #WM_NOTIFY
      *uMsg.NMHDR = lParam                                                                     
      If *uMsg\hwndFrom = GadgetID(#lstData) And *uMsg\code = #NM_CLICK
        *Li.NMITEMACTIVATE = lParam
        Program\CurrentCheckedRow = *Li\iItem
      EndIf

  EndSelect
  ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure

If OpenWindow(0, 0, 0, 640, 400, "ListIconGadgets", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ListIconGadget(#lstData,  10, 10, 620,380, "CheckBox", 100, #PB_ListIcon_GridLines|#PB_ListIcon_CheckBoxes|#PB_ListIcon_FullRowSelect)
  
  For c = 1 To 3
    AddGadgetColumn(#lstData, c, "Column " + Str(c), 100)
  Next
  For r = 0 To 100
    AddGadgetItem(#lstData, r, ""+Chr(10)+"Item-1 "+Str(r)+Chr(10)+"Item-2 "+Str(r)+Chr(10)+"Item-3 "+Str(r))
  Next
EndIf

SetWindowCallback(@WndProc())

Repeat
  Select WaitWindowEvent(#lstData)
     
    Case #PB_Event_CloseWindow
      Quit = 1
     
    Case #PB_Event_Gadget
      Select EventGadget()               
        Case #lstData
          Select EventType()                   
            Case #PB_EventType_Change
              Status = GetGadgetItemState(#lstData, Program\CurrentCheckedRow)
              If status = 0
                Debug "Row : #"+Str(Program\CurrentCheckedRow)+" UnSelected"
                Debug "CheckBox UnChecked"
                Debug "----"
              ElseIf status = 1
                Debug "Row : #"+Str(Program\CurrentCheckedRow)+" Selected"
                Debug "CheckBox UnChecked"
                Debug "----"
              ElseIf Status = 2
                Debug "Row : #"+Str(Program\CurrentCheckedRow)+" UnSelected"
                Debug "CheckBox Checked"
                Debug "----"
              ElseIf Status = 3
                Debug "Row : #"+Str(Program\CurrentCheckedRow)+" Selected"
                Debug "CheckBox Checked"
                Debug "----" 
              EndIf                  
             
          EndSelect
         
      EndSelect
  EndSelect
 
Until Quit = 1
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
kpeters58
Beiträge: 26
Registriert: 16.12.2014 18:51

Re: ListIconGadget Spalte mit Checkbox

Beitrag von kpeters58 »

Ich ‚löse‘ dieses Problem einfach damit, daß ich den Spaltenwert #True oder #False beim Laden des Listicongadgets durch ein Checkmark Symbol ersetze bzw. den Spaltenwert lösche.

Ich nehme dafür meistens
#CHECKMARK = Chr(10003)
Benutzeravatar
Shardik
Beiträge: 746
Registriert: 25.01.2005 12:19

Re: ListIconGadget Spalte mit Checkbox

Beitrag von Shardik »

marcelx hat geschrieben: 24.11.2023 21:27 Wie kann ich eine Spalte wie mit AddGadgetColumn ganz Links/Rechts oder an eine andere Stelle erzeugen?
Drei Beispiele:
- RASHAD 1
- RASHAD 2
- edel
Antworten