ListIconGadget und #PB_ListIcon_HeaderDragDrop
Verfasst: 18.10.2008 18:33
Mit folgendem Code möchte ich demonstrieren wie es leicht möglich ist die Reihenfolge der Spalten vom ListIconGadget zu speichern und sie wiederherzustellen.
http://msdn.microsoft.com/de-de/bb761161
http://msdn.microsoft.com/de-de/bb774913
http://msdn.microsoft.com/de-de/bb761161
http://msdn.microsoft.com/de-de/bb774913
Code: Alles auswählen
EnableExplicit
;PureBasic 4.30 B3
#ColumnCount = 6
Global Dim ColumnOrderArray.i(#ColumnCount - 1)
Global iFile.i
Global iNext.i
Global sFile.s = GetHomeDirectory() + "Desktop\ColumnOrderArray.dat"
If OpenWindow(0, 0, 0, 640, 480, "Beispiel: Spaltenreihenfolge vom ListIconGadget", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ListIconGadget(0, 5, 5, WindowWidth(0) - 10, WindowHeight(0) - 10, "Spalte 1", 80, #PB_ListIcon_HeaderDragDrop)
For iNext = 1 To #ColumnCount - 1
AddGadgetColumn(0, iNext, "Spalte " + Str(iNext + 1), 80)
Next
;Read ColumnOrderArray
iFile = ReadFile(#PB_Any, sFile)
If iFile
For iNext = 0 To ArraySize(ColumnOrderArray())
ColumnOrderArray(iNext) = ReadInteger(iFile)
Next
CloseFile(iFile)
SendMessage_(GadgetID(0), #LVM_SETCOLUMNORDERARRAY, #ColumnCount, @ColumnOrderArray())
EndIf
While WaitWindowEvent() <> #PB_Event_CloseWindow : Wend
;Save ColumnOrderArray
If SendMessage_(GadgetID(0), #LVM_GETCOLUMNORDERARRAY, #ColumnCount, @ColumnOrderArray())
iFile = CreateFile(#PB_Any, sFile)
If iFile
For iNext = 0 To ArraySize(ColumnOrderArray())
WriteInteger(iFile, ColumnOrderArray(iNext))
Next
CloseFile(iFile)
EndIf
EndIf
EndIf