винда файлы и папки сортирует в одной куче, не делая различия между файлами и папками
это я такой привередливый, или виндовый косяк
есть #TVM_SORTCHILDRENCB, типа "ручной" сортировки или писать своё дерево и сортировать его до генерации дерева
оба варианта не из простых
код показывает как винда сортирует
Procedure TreeExpand(gad) Protected hwndTV, hRoot, hItem hwndTV = GadgetID(gad) hRoot = SendMessage_(hwndTV, #TVM_GETNEXTITEM, #TVGN_ROOT, 0) hItem = hRoot Repeat SendMessage_(hwndTV, #TVM_EXPAND, #TVE_EXPAND, hItem) hItem = SendMessage_(hwndTV, #TVM_GETNEXTITEM, #TVGN_NEXTVISIBLE, hItem) Until hItem = #Null SendMessage_(hwndTV, #TVM_ENSUREVISIBLE, 0, hRoot) EndProcedure EnableExplicit Procedure SortTree(gad) Protected k, id id=GadgetID(gad) For k=0 To CountGadgetItems(gad)-1 If SendMessage_(id, #TVM_GETNEXTITEM,#TVGN_CHILD, GadgetItemID(gad, k)) SendMessage_(id, #TVM_SORTCHILDREN, 0, GadgetItemID(gad, k)) EndIf Next SendMessage_(id, #TVM_SORTCHILDREN, 0, 0) EndProcedure If OpenWindow(0,0,0,200,420,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) TreeGadget(33,10,10,180,400,0) ; A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AddGadgetItem(33,-1,"F-Folder-1",0,0) AddGadgetItem(33,-1,"G",0,1) AddGadgetItem(33,-1,"T",0,1) AddGadgetItem(33,-1,"N",0,1) AddGadgetItem(33,-1,"B",0,0) AddGadgetItem(33,-1,"C-Folder-1",0,0) AddGadgetItem(33,-1,"K",0,1) AddGadgetItem(33,-1,"U",0,1) AddGadgetItem(33,-1,"O",0,1) AddGadgetItem(33,-1,"P",0,1) AddGadgetItem(33,-1,"D",0,0) AddGadgetItem(33,-1,"V",0,0) AddGadgetItem(33,-1,"R",0,0) AddGadgetItem(33,-1,"A",0,0) AddGadgetItem(33,-1,"E",0,0) TreeExpand(33) SortTree(33) Repeat If GetAsyncKeyState_(#VK_ESCAPE)=32768:Break:EndIf Until WaitWindowEvent() = #PB_Event_CloseWindow EndIf