Seite 1 von 1

OpenFileRequester - Verzeichniswechsel verhindern

Verfasst: 07.01.2008 19:30
von ThoPie
Hallo,

gibt es irgendeine Möglichkeit beim OpenFileRequester einen Verzeichniswechsel zu verhindern?

Vielen Dank.

Verfasst: 07.01.2008 19:38
von Fluid Byte
Was soll der Benutzer dann noch auswählen?

Verfasst: 07.01.2008 19:52
von Ligatur
Ich frage mich zwar auch wie sinnvoll es ist, dem Benutzer vorzuschreiben wo er was zu speichern hat aber möglich ist es (zumindest unter Windows). Allerdings ist das nicht unbedingt Anfängergeeignet da API.
Dazu musst du den Dateirequester statt mit PB - Befehlen mit dem API - Befehl GetOpenFileName_() (oder GetSaveFileName_() je nachdem) öffnen und in der OPENFILENAME - Struktur bei Flags #OFN_NOCHANGEDIR setzen.

Verfasst: 07.01.2008 20:11
von ThoPie
Naja,
ich möchte das Dateien nur aus einem bestimmten Verzeichnis ausgewählt werden können.

Verfasst: 07.01.2008 20:15
von Andreas_S
dann benutzt die methode von Ligatur, oder schreib einen eigenen OpenFileRequester ...

Gruß Andreas

Verfasst: 07.01.2008 20:23
von bobobo
dann machst Du Dir doch mal eben nen selbergehäkelten Requester

Code: Alles auswählen

OpenWindow(0,0,0,300,300,"Auswahl",#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
ListViewGadget(0,0,0,300,300)
Directory.s = "d:\"
If ExamineDirectory(0, Directory, "*.*")
  While NextDirectoryEntry(0)
    If DirectoryEntryType(0) = #PB_DirectoryEntry_File
      AddGadgetItem(0,-1,DirectoryEntryName(0))
    EndIf
  Wend
  FinishDirectory(0)
EndIf
Repeat
  Event = WaitWindowEvent()
  WindowID = EventWindow()
  GadgetID = EventGadget()
  EventType = EventType()
  If Event = #PB_Event_Gadget
    If GadgetID = 0
      MessageRequester("aha","es wurde "+Directory+GetGadgetText(0)+" ausgwählt",0)
      quit=1
      
    EndIf
  EndIf
Until quit
End

Verfasst: 07.01.2008 20:29
von Fluid Byte
MSDN hat geschrieben:OFN_NOCHANGEDIR
Restores the current directory to its original value if the user changed the directory while searching for files.

Windows NT 4.0/2000/XP: This flag is ineffective for GetOpenFileName.