ListIconGadget und #PB_ListIcon_MultiSelect

Anfängerfragen zum Programmieren mit PureBasic.
php-freak
Beiträge: 536
Registriert: 07.02.2009 18:08

ListIconGadget und #PB_ListIcon_MultiSelect

Beitrag von php-freak »

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
PureBasic 4.30 (x86)
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Beitrag von hjbremer »

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
php-freak
Beiträge: 536
Registriert: 07.02.2009 18:08

Beitrag von php-freak »

Bei mir gibst in der 2.- Zeilen nen Compiler Error!
PureBasic 4.30 (x86)
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Beitrag von hjbremer »

ich schrieb anpassen :mrgreen:

das Beispiel ist für 4.2
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
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

Beitrag von ts-soft »

Dafür braucht man keine API verwenden, und sollte man dann auch nicht
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.
Bild
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Beitrag von hjbremer »

und die Zeit geht ins Land bei 20000 Zeilen :allright:
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
php-freak
Beiträge: 536
Registriert: 07.02.2009 18:08

Beitrag von php-freak »

CountGadgetItems()
GetGadgetItemState()

^^Damit geht es! Ihr habt recht!
Zuletzt geändert von php-freak am 09.03.2009 15:50, insgesamt 1-mal geändert.
PureBasic 4.30 (x86)
Benutzeravatar
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

Beitrag von ts-soft »

php-freak hat geschrieben:CountGadgetItems()
GetGadgetItemState()

^^Damit geht es nicht!
Naja, no comment :mrgreen:

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.
Bild
php-freak
Beiträge: 536
Registriert: 07.02.2009 18:08

Beitrag von php-freak »

Okay THX ts-soft!
PureBasic 4.30 (x86)
Benutzeravatar
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:

Beitrag von Falko »

php-freak hat geschrieben:CountGadgetItems()
GetGadgetItemState()

^^Damit geht es! Ihr habt recht!
Wie wäre es damit, wenn du Dein Beispielsource von Dir
rein stellst?

Dann sehen wir, ob es wirklich nicht geht :mrgreen:

Gruß, Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Antworten