So die Theorie ...
Es ist verzwickt. Im Beispiel funktioniert alles prima.
Nun wollte ich die Sache in mein Programm einbauen ...
Mein Array war Global
Code: Alles auswählen
SendMessage_(GadgetID(0),#LVM_GETCOLUMNORDERARRAY,3,@colArray(0))
Was genau macht die
3?
Und die scheinen immer Global zu sein
Verträgt sich deine variante eventuell nicht mit anderen CallBack-Funktionen?
Ich kenn mich zu wenig aus, ich kann dir nur sagen, dass es mein Array nicht beschreibt. Es schreibt nicht mal NULLen rein.
Egal wohin ich die Titel verschiebe.
Wodran kann es liegen?
Hab es einfach zum Testen in meine HAUPTSCHLEIFE gelegt.
Eigentlich brauch ich doch nur:
#LVM_GETCOLUMNORDERARRAY definieren (ist doch immer Global)
und danach mein Array mit
SendMessage_ abfragen ...
Wo ist der Haken?
Ich hab alles versucht. Ich muss was kleines übersehen habe
...
ich bin drauf und dran mein Programm um deins rumzubauen ...
aber das kann doch nicht die Lösung sein.
Kennst du Ursachen für sowas?
...
Hier mal was zusammen gebautes ...
Wieso geht es nicht?
Code: Alles auswählen
Procedure Dings()
ListIconGadget(5,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(5,1,"Test2",100)
AddGadgetColumn(5,3,"Test3",100)
AddGadgetColumn(5,3,"4",50)
CreateImage(0,32,32)
AddGadgetItem(5,0,"Test"+Chr(10))
AddGadgetItem(5, -1, "Item 1"+Chr(10)+"Item 2"+Chr(10)+"Item 3"+Chr(10)+"Item 4")
EndProcedure
Enumeration
#Wind
EndEnumeration
#LVM_GETCOLUMNORDERARRAY = (#LVM_FIRST+ $3B)
OpenWindow(#Wind,0,0,400,400,"LI Test",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
PanelGadget(0,4,4,380,380)
AddGadgetItem(0,0,"Test")
ButtonGadget(1,5,210,100,20,"show")
Dings()
CloseGadgetList()
Dong()
Global Dim colrray(10) ;<- hier die anzahl der columns die du hast beginnend bei 0
;SendMessage_(GadgetID(0),#LVM_GETCOLUMNORDERARRAY,3,@colArray(0))
Redim colrray(12)
For i = 0 To 2
Debug colrray(i)
Next
Debug "------------"
Repeat
Event = WaitWindowEvent(1000)
If Event = #PB_Event_Gadget
GadgetID = EventGadget()
If GadgetID = 1
SendMessage_(GadgetID(0),#LVM_GETCOLUMNORDERARRAY,3,@colrray(0))
For i = 0 To 2
Debug colrray(i)
Next
Debug "------------"
EndIf
EndIf
SendMessage_(GadgetID(5),#LVM_GETCOLUMNORDERARRAY,3,@colrray(0))
For i = 0 To 2
Debug colrray(i)
Next
Debug "------------"
Until Event = #PB_Event_CloseWindow