ListIconGadget und #PB_ListIcon_MultiSelect
ListIconGadget und #PB_ListIcon_MultiSelect
Hallo,
folgendes Problem!
Ich hab ein List Icon Gadget mit dem Flag #PB_ListIcon_MultiSelect.
Nun würde ich gerne ALLE Elemente die der User gewählt hat ermitteln!
GetGadgetState() <<geht nicht! Bei nur einer angewählten Sache geht das aber sonnst gibt es immer null zurück (wenn mehrere angewählt wurden) egal wie oft man es aufruft!
Gibt es einen Befehl womit man alle Ermitteln kann?
Wenn ja wie lautet dieser?
Gruß
JENS
folgendes Problem!
Ich hab ein List Icon Gadget mit dem Flag #PB_ListIcon_MultiSelect.
Nun würde ich gerne ALLE Elemente die der User gewählt hat ermitteln!
GetGadgetState() <<geht nicht! Bei nur einer angewählten Sache geht das aber sonnst gibt es immer null zurück (wenn mehrere angewählt wurden) egal wie oft man es aufruft!
Gibt es einen Befehl womit man alle Ermitteln kann?
Wenn ja wie lautet dieser?
Gruß
JENS
PureBasic 4.30 (x86)
- hjbremer
- Beiträge: 822
- Registriert: 27.02.2006 22:30
- Computerausstattung: von gestern
- Wohnort: Neumünster
ein Beispiel, mußt es halt anpassen
Code: Alles auswählen
Dim liste(0)
LV_AnzahlSelect(lvpbnr,liste())
Procedure LV_AnzahlSelect(pbnr, Array liste(1)) ;16.10.07
id = GadgetID(pbnr)
;suchanz = Anzahl der selektierten Zeilen
suchanz = SendMessage_(id, #LVM_GETSELECTEDCOUNT, 0, 0)
Dim liste(suchanz) ;hier kommen die Zeilennummern hinein
liste(0)=suchanz
If suchanz > 0
n=GetGadgetState(pbnr) ;n ist die Startposi von #LVM_GETNEXTITEM
liste(1)=n ; darum müssen diese 2 Zeilen sein
For j=2 To suchanz
n = SendMessage_(id,#LVM_GETNEXTITEM,n,#LVNI_SELECTED)
liste(j) = n
Next
;For j=1 To suchanz:Debug liste(j):Next
EndIf
EndProcedure
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
Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Dafür braucht man keine API verwenden, und sollte man dann auch nicht
nutzen.
nutzen.
Code: Alles auswählen
CountGadgetItems()
GetGadgetItemState()
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Naja, no commentphp-freak hat geschrieben:CountGadgetItems()
GetGadgetItemState()
^^Damit geht es nicht!

Code: Alles auswählen
If OpenWindow(0, 100, 100, 400, 150, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(0, 5, 5, 390, 90, "Name", 100, #PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_MultiSelect)
AddGadgetColumn(0, 1, "Address", 250)
AddGadgetItem(0, -1, "Harry Rannit"+Chr(10)+"12 Parliament Way, Battle Street, By the Bay")
AddGadgetItem(0, -1, "Ginger Brokeit"+Chr(10)+"130 PureBasic Road, BigTown, CodeCity")
AddGadgetItem(0, -1, "Max Mustermann"+Chr(10)+"Mustergasse 0815, Musterstadt")
ButtonGadget(1, 10, 110, 80, 30, "Show Selected")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow : Break
Case #PB_Event_Gadget
If EventGadget() = 1
For I = 0 To CountGadgetItems(0) - 1
If GetGadgetItemState(0, i) & #PB_ListIcon_Selected
Debug GetGadgetItemText(0, i)
EndIf
Next
EndIf
EndSelect
ForEver
EndIf
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten: