ListIconGadget() #PB_ListIcon_HeaderDragDrop noch ne Frage

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Bin gespannt, wie lange ihr braucht, um den Fehler zu finden.
Nach einigem rumprobieren bin ich nun schlauer.

>> die 3 im oberen Beispiel scheint die Anzahl der Spalten zu sein.
Stimmt die nicht exakt, so ist nix los :shock:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Xaby hat geschrieben:

Code: Alles auswählen

SendMessage_(GadgetID(0),#LVM_GETCOLUMNORDERARRAY,3,@colArray(0)) 
dein Panel hat die ID 0 , dein ListView 5.

Mit der "3" uebergibst du die Anzahl der Spalten, du hast allerdings nicht
3 sondern 4 Spalten.

Xaby hat geschrieben:

Code: Alles auswählen

Global Dim colrray(10)
 
Tippfehler ?
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Nee, kein Tippfehler ...

war der Test, ob es am Namen liegen könnte. Wenn gar nichts geht, werde ich auch mal paranoid. Naja, ich hab es erstmal zurück gestellt und mich um den Rest meines Programms gekümmert. :D
Muss ja auch noch Features für Version 5 geben :mrgreen:

Bring ich erst ne DEMO raus oder so :lol:

Mal schauen. :? ... naja, manchmal sieht man es einfach nicht.


Als ich drauf gekommen war, dass die 3 die Anzahl der Spalten ist, hab ich mein Programm darauf hin angepasst. Dann ging es für einen Programmstart und plötzlich war wieder alles wie sonst auch. Immer nur NULLEN im Array.
Deshalb hatte ich mich dann erstmal drum gekümmert, dass die Anzahl meiner Spalten MIR überhaupt mal bekannt ist :o
Denn ab und an passiert es ja mal, dass man Spalten, Spalten+1 oder Spalten - 1 oder ähnliches als eigentliche Spaltenzahl im Code verwendet und wenn man nicht ordentlich dokumentiert ... :freak:

Wird schon noch. :allright:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

@Xaby, habe dein Code etwas geändert. Jetzt zeigt er nach einem Click auf dem "Show"-Button die Reihenfolge der Spalten an.

Code: Alles auswählen

Global Dim colrray(10)

Enumeration
  #Wind
  #Panel
  #ListIcon
  #Button
EndEnumeration

#LVM_GETCOLUMNORDERARRAY = (#LVM_FIRST+ $3B)

Procedure Dings()
  ListIconGadget(#ListIcon,0,0,300,200,"Test1",50,#PB_ListView_Multiselect | #PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect | #PB_ListIcon_HeaderDragDrop | #PB_ListIcon_AlwaysShowSelection)
EndProcedure

Procedure Dong()
  AddGadgetColumn(#ListIcon,1,"Test2",100)
  AddGadgetColumn(#ListIcon,2,"Test3",100)
  AddGadgetItem(#ListIcon,0,"Test"+Chr(10))
  AddGadgetItem(#ListIcon, -1, "Item 1"+Chr(10)+"Item 2"+Chr(10)+"Item 3"+Chr(10)+"Item 4")
EndProcedure

OpenWindow(#Wind,0,0,400,400,"LI Test",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
PanelGadget(#Panel,4,4,380,380)
AddGadgetItem(#Panel,0,"Test")
Dings()
ButtonGadget(#Button,5,210,100,20,"show")
Dong()
CloseGadgetList()

Repeat
  Event = WaitWindowEvent(1000)
  If Event = #PB_Event_Gadget
    GadgetID = EventGadget()
    If GadgetID = #Button
    SendMessage_(GadgetID(#ListIcon),#LVM_GETCOLUMNORDERARRAY,3,@colrray(0))
      For i = 0 To 2
        Debug colrray(i)
      Next
      Debug "------------" 
    EndIf
  EndIf
Until Event = #PB_Event_CloseWindow
End
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Antworten