Mit den Werten: #PB_Explorer_MultiSelect |#PB_Explorer_NoDirectoryChange | #PB_Explorer_NoDriveRequester | #PB_Explorer_NoFolders | #PB_Explorer_NoParentFolder
So...
Wenn ich nun Mehrere Dateien Selektiere, dann werden die:
1. Nicht mehr mitgezählt
2. Der GadgetItemState ist Unknown...
Hier der Source, der das fabriziert:
Code: Alles auswählen
Procedure.s FileRequester(title.s)
ReturnString.s = ""
hwnd = OpenWindow(#PB_Any, 0, 0, 800, 420 , title, #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
CreateGadgetList(WindowID(hwnd))
Dir = ExplorerListGadget(#PB_Any,0,0,400,400,"",#PB_Explorer_NoFiles)
File = ExplorerListGadget(#PB_Any,400,0,400,400,"",#PB_Explorer_MultiSelect |#PB_Explorer_NoDirectoryChange | #PB_Explorer_NoDriveRequester | #PB_Explorer_NoFolders | #PB_Explorer_NoParentFolder)
Button1 = ButtonGadget(#PB_Any,770,400,30,20,"Ok")
Button2 = ButtonGadget(#PB_Any,720,400,50,20,"Cancel")
DirGadger = Dir
FileGadger = File
Repeat
Event = WindowEvent()
Select Event
Case #PB_Event_CloseWindow
CloseWindow(hwnd)
ProcedureReturn ""
Case #PB_Event_Gadget
Select EventGadget()
Case Button1
ReturnString = GetGadgetText(FileGadger)
If GetGadgetState(FileGadger) > -1
ReturnString + GetGadgetItemText(FileGadger,GetGadgetState(FileGadger), 0)
EndIf
Case Button2
CloseWindow(hwnd)
ProcedureReturn ""
Case DirGadger
SetGadgetText(FileGadger, GetGadgetText(DirGadger))
Case FileGadger
If EventType() = 2
ReturnString = GetGadgetText(FileGadger)
If GetGadgetState(FileGadger) > -1
ReturnString + GetGadgetItemText(FileGadger,GetGadgetState(FileGadger), 0)
EndIf
For i=0 To CountGadgetItems(FileGadger)
Debug i
If GetGadgetItemState(FileGadger, i) = #PB_Explorer_File
Debug "File: " + GetGadgetItemText(FileGadger, i,0)
ElseIf GetGadgetItemState(FileGadger, i) = #PB_Explorer_Directory
Debug "Dir: " + GetGadgetItemText(FileGadger, i,0)
ElseIf GetGadgetItemState(FileGadger, i) = #PB_Explorer_Selected
Debug "Selected: " + GetGadgetItemText(FileGadger, i,0)
Else
Debug "Unknown: " + GetGadgetItemText(FileGadger, i,0)
EndIf
Next
EndIf
EndSelect
EndSelect
Delay(1)
Until ReturnString <> ""
CloseWindow(hwnd)
ProcedureReturn ReturnString
EndProcedure
Debug FileRequester("Test")
