Ich probiers aus und melde mich wieder.
Danke schon mal. Das macht richtig Spaß hier.

Jetzt muß ich aber irgendwann mal schlafen. Zur Zeit arbeite ich 3-Schicht am Stück mit PB.

Obwohl es für ExplorerTreeGadgets in der Tat nicht vorgesehen ist, kann man die Mehrfachselektion sehr wohl mit Ordnern realisieren; zumindest hat es freak bei mit Checkbox versehenen Ordnern in diesem Posting demonstriert:Kaeru Gaman hat geschrieben: das ExplorerTreeGadget ist nicht dafür vorgesehen, um mehrere Ordner zu markieren.
das kann die linke spalte in deinem explorer auch nicht.
Code: Alles auswählen
#Button = 0
#ExplorerTree = 1
#Window = 0
Procedure.B HighlightItem(HighlightFlag.B)
ItemHandle.L
TVHitTest.TV_HITTESTINFO
TVItem.TV_ITEM
TVHitTest\Pt\x = WindowMouseX(#Window) - GadgetX(#ExplorerTree)
TVHitTest\Pt\y = WindowMouseY(#Window) - GadgetY(#ExplorerTree)
ItemHandle = SendMessage_(GadgetID(#ExplorerTree), #TVM_HITTEST, 0, @TVHitTest)
If ItemHandle <> 0
If TVHitTest\Flags <> #TVHT_ONITEMBUTTON
TVItem\Mask = #TVIF_STATE
TVItem\hItem = ItemHandle
If HighlightFlag = #True
TVItem\StateMask = #TVIS_DROPHILITED
TVItem\State = #TVIS_DROPHILITED
Else
TVItem\StateMask = #TVIS_DROPHILITED | #TVIS_SELECTED
TVItem\State = 0
EndIf
SendMessage_(GadgetID(#ExplorerTree), #TVM_SETITEM, 0, @TVItem)
RedrawWindow_(GadgetID(#ExplorerTree), 0, 0, #RDW_UPDATENOW)
ProcedureReturn #True
EndIf
EndIf
ProcedureReturn #False
EndProcedure
EntryFound.B
i.W
Msg.S
WindowEvent.L
NewList MarkedItems.S()
If OpenWindow(#Window, 0, 0, 321, 330, "MultiSelect-Demo", #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#Window))
ExplorerTreeGadget(#ExplorerTree, 9, 12, 303, 279, "", #PB_Explorer_NoMyDocuments)
ButtonGadget(#Button, 80, 300, 150, 20, "Markierte Dateien anzeigen")
Repeat
WindowEvent = WaitWindowEvent()
If EventType() = #PB_EventType_LeftClick
If EventGadget() = #Button
Break
EndIf
If GetGadgetState(#ExplorerTree) = #PB_Explorer_File
EntryFound = #False
If CountList(MarkedItems()) = 0
If HighlightItem(#True) = #True
AddElement(MarkedItems())
MarkedItems() = GetGadgetText(#ExplorerTree)
EndIf
Else
FirstElement(MarkedItems())
Repeat
If MarkedItems() = GetGadgetText(#ExplorerTree)
If HighlightItem(#False) = #True
DeleteElement(MarkedItems())
EntryFound = #True
EndIf
Break
EndIf
Until NextElement(MarkedItems()) = #False
If EntryFound = #False
If HighlightItem(#True) = #True
AddElement(MarkedItems())
MarkedItems() = GetGadgetText(#ExplorerTree)
EndIf
EndIf
EndIf
EndIf
EndIf
Until WindowEvent = #PB_Event_CloseWindow
If CountList(MarkedItems()) > 0
Msg = "Anzahl ausgewählter Dateien: " + Str(CountList(MarkedItems())) + Chr(13) + Chr(13)
FirstElement(MarkedItems())
For i = 1 To CountList(MarkedItems())
Msg = Msg + MarkedItems() + Chr(13)
NextElement(MarkedItems())
Next i
MessageRequester("Info", Msg)
Else
MessageRequester("Info", "Es wurden keine Dateien markiert!")
EndIf
EndIf
EndIf