Manfred hat geschrieben: ↑Mo, 01. Feb 2021 18:11
hm,
irgendwie klappt es aber nicht. Egal was ich angebe, es wird immer das letzte Verzeichnis angewählt. War da nicht mal was? Ich suche schon hier die ganze Zeit, finde aber nichts dazu.
:open( [<cDefaultFile>], ;
[<lCenter>], ;
[<lAllowMultiple>],;
[<lCreateNewFiles>] ) --> cFileName | aFileNames | NIL
Für den Parameter <cDefaultFile> kann eine optionale Zeichenkette übergeben werden.
Wird eine Zeichenkette übergeben und enthält sie einen gültigen Pfad,
wird das entsprechende Verzeichnis als voreingestelltes Verzeichnis angezeigt.
Enthält die Zeichenkette zusätzlich einen gültigen Dateinamen (mit oder ohne Pfadangabe),
wird der Dateiname als Standarddateiname für die zu öffnende Datei gesetzt und im
Eingabefeld "Dateiname:" angezeigt.
Win32 - Unter Windows wird das im Dialog angezeigte Vorgabeverzeichnis
unter Umständen durch das Betriebssystem ausgewählt.
Windows 2000-, XP- und 2003 Server-Systeme - Ist in <cDefaultFile> kein Pfad angegeben
und wurde in der Vergangenheit bereits ein Dateiauswahldialog geöffnet,
wird das zuletzt ausgewählte Verzeichnis als Vorgabeverzeichnis verwendet.
Informationen über das zuletzt verwendete Verzeichnis werden für einen
bestimmten Zeitraum vorgehalten. Ist diese Periode abgelaufen oder wurde
noch kein Dateidialog geöffnet, wird stattdessen das aktuelle Verzeichnis verwendet,
wenn es Dateien des benötigten Typs enthält.
Andernfalls wird das Verzeichnis "Eigene Dateien" als Vorgabeverzeichnis im Dialog angezeigt.
Windows 98-, ME-Systeme - Ist in <cDefaultFile> kein Pfad angegeben, wird das aktuelle
Verzeichnis als Vorgabeverzeichnis verwendet, wenn es Dateien des benötigten Typs enthält.
Andernfalls wird das Verzeichnis "Eigene Dateien" als Vorgabeverzeichnis im Dialog angezeigt.
Alle anderen Windows-Plattformen - Ist in <cDefaultFile> kein Pfad angegeben,
wird das aktuelle Verzeichnis als Vorgabeverzeichnis verwendet.
Zu beachten wäre auch die Instanzvariable :restoreDir
Die Instanzvariable :restoreDir bestimmt, wie das aktuelle Verzeichnis der Anwendung
durch die Methoden :open() und :saveAs() beeinflußt wird.
Enthält die Eigenschaft den Wert .T., wird das aktuelle Anwendungsverzeichnis
wiederhergestellt, sobald der Dateidialog geschlossen wird.
Enthält sie den Wert .F., wird das aktuelle Verzeichnis der Anwendung auf das
Verzeichnis gesetzt, das die vom Benutzer ausgewählten Dateien enthält.
ich habe mit dem nachstehenden Schema noch nie Probleme mit den Pfaden gehabt.
<template_pool> ist lediglich eine Variable für das jeweilige Rootverzeichnis
c_act_CurDir:=CurDir()+"\"
c_act_CurDir := CurDrive() + ":\" + CurDir() + "\" // ** lässt sich auch via :restoreDir lösen
file_Path:= template_pool + "EXPEDIT"
a_fileFilter := { {"Import Templates Expedit", "*.PEX"} }
oDlg := XbpFileDialog():new():create()
oDlg:title:="Generieren Ausfolgescheine"
oDlg:Filefilters:=a_fileFilter
oDlg:center:=.T.
oDlg:defExtension:="PEX"
c_impFile :=oDlg:open( file_Path,.t.,.f.,.F.)
c_impFile:= iif(c_impFile==NIL," ",c_impFile)
c_addon_Dir:=CurDir()+"\"
oDlg:destroy()
CurDir(c_act_CurDir) // ** lässt sich auch via :restoreDir lösen
beste grüße aus dem süden wo schon in den gärten die ersten blumen blühen