![Confused :?](./images/smilies/confused.gif)
Code: Alles auswählen
oDialog:title := 'Standard-Ordner für Text-Dateien festlegen'
oDialog:FileFilters := { {"um Verzeichnis auszuwählen <Enter> oder <Speichern>", "*.TXT"} }
oDialog:create()
auswahl:=oDialog:SaveAs( Hauptpfad+"\Texte" )
Moderator: Moderatoren
Code: Alles auswählen
oDialog:title := 'Standard-Ordner für Text-Dateien festlegen'
oDialog:FileFilters := { {"um Verzeichnis auszuwählen <Enter> oder <Speichern>", "*.TXT"} }
oDialog:create()
auswahl:=oDialog:SaveAs( Hauptpfad+"\Texte" )
nein - es gibt soweit ich weiß einen undokumentierten Parameter mit dem man ein Verzeichnis (keine Datei) auswählen kann.Manfred hat geschrieben:meinst Du oDialog:open() ?
Code: Alles auswählen
cVerzeichnis := oDialog:open("lw:\verzeichnis")
Das ist nicht mein Problem. Ich möchte im Dialogfenster einVerzeichnis auswählen, keine Datei.Manfred hat geschrieben:Verstehe ich jetzt nicht. Du gibst das Verzeichnis mit an und dann wird genau ab da geöffnet.
JA.Manfred hat geschrieben:Du möchtest ein Verzeichnis auswählen um dann mit dem Namen weiterzuarbeiten
Naja, ganz ehrlich klingt das aber nicht so. Aber egal, ich werde auch immer falsch verstanden.peternmb hat geschrieben: ich möchte ein bestimmtes Verzeichnis vorgeben, und die darin befindlichen txt-Dateien anzeigen lassen.
könnte es sein, dass Du mehrmals (also auch beim zweiten Aufruf) ein dllload() machst, ohne (nach erfolgtem Aufruf) ein dllunload() zu machen?peternmb hat geschrieben:Bisher habe ich dafür die dll-Funktion "selectfolder" eingesetzt.
Damit gibt es aber offensichtlich unter win7/64 Probleme - beim 2.Aufruf der Funktion stürzt mein Programm mit einem fatal-error den ich nicht zuordnen kann ab.
also das hierpeternmb hat geschrieben:ich weiß, es gibt einen Parameter, so dass man keine Datei auswählen muss - nur weiß ich nicht mehr wo der hingehört![]()
...
ich möchte ein bestimmtes Verzeichnis vorgeben, und die darin befindlichen txt-Dateien anzeigen lassen.
Code: Alles auswählen
oFileDlg := XbpFileDialog():new()
oFileDlg:center := .T.
oFileDlg:title := 'Start Ordner auswählen'
oFileDlg:create()
cPathName := oFileDlg:saveAs("Select Path, Press Enter or Click SAVE",,.T.)
IF .NOT. EMPTY(cPathname)
*** extract path in case user selected a file
nPosi := RAT("\",cPathName)
IF nPosi > 0
cPathName := UPPER(LEFT(cPathName,nPosi))
ENDIF
ENDIF
Nein, eigentlich nicht. Die DLL wird nur beim Programmstart einmalig aufgerufen:Martin Altmann hat geschrieben:Moin,könnte es sein, dass Du mehrmals (also auch beim zweiten Aufruf) ein dllload() machst, ohne (nach erfolgtem Aufruf) ein dllunload() zu machen?peternmb hat geschrieben:Bisher habe ich dafür die dll-Funktion "selectfolder" eingesetzt.
Damit gibt es aber offensichtlich unter win7/64 Probleme - beim 2.Aufruf der Funktion stürzt mein Programm mit einem fatal-error den ich nicht zuordnen kann ab.
Viele Grüße,
Martin
Code: Alles auswählen
#pragma library("XppUi2")
//------------------------------------------
// Declaration of the external DLL-Functions
//------------------------------------------
DLLFUNCTION SelectFolder(cCaption,cDefault,@cRet,nHwnd) USING STDCALL FROM "SelectFolder.dll"
JA, ich schaffe es allerdings damit nicht, mein Standardverzeichnis vorzugeben (denn das steht bei mir in der saveAs-KLammer).AUGE_OHR hat geschrieben:also das hierCode: Alles auswählen
oFileDlg := XbpFileDialog():new() oFileDlg:center := .T. oFileDlg:title := 'Start Ordner auswählen' oFileDlg:create() cPathName := oFileDlg:saveAs("Select Path, Press Enter or Click SAVE",,.T.) IF .NOT. EMPTY(cPathname) *** extract path in case user selected a file nPosi := RAT("\",cPathName) IF nPosi > 0 cPathName := UPPER(LEFT(cPathName,nPosi)) ENDIF ENDIF
Code: Alles auswählen
CurDir(wunschverzeichniss) // bringt nichts
oFileDlg := XbpFileDialog():new()
oFileDlg:center := .T.
oFileDlg:title := 'Standard-Ordner für Text-Dateien festlegen'
oFileDlg:FileFilters := { {"Standard-Ordner für Text-Dateien", "*.TXT"} }
oFileDlg:create()
auswahl := oFileDlg:saveAs("wenn OK, Speichern klicken oder Enter",,.T.)
Rolf hat geschrieben:sieh doch mal in die Hilfe bei XbpFileDialog():saveAs( cDefaultFile <----
Code: Alles auswählen
auswahl := oFileDlg:saveAs("wenn OK, Speichern klicken oder Enter",,.T.)
Code: Alles auswählen
oDialog:title := 'Standard-Ordner für Text-Dateien festlegen'
oDialog:FileFilters := { {"um Verzeichnis auszuwählen <Enter> oder <Speichern>", "*.TXT"} }
oDialog:create()
auswahl:=oDialog:SaveAs( Hauptpfad+"\Texte\<*.TXT" )
es ist die 19th Message von Hubert, Di Nov 28, 2006 8:43 pm und das File heisst FolderBrowse_110.zipDemonstration der API-Funktion SHBrowseForFolder in Xbase++.
Bap.dll wird nicht benötigt.
Error 404 - Not found
Ich will beides: Der Auswahldialog zur Verzeichnis-Auswahl soll ein vorgegebenes Verzeichnis öffnen und es sollen nur txt-Dateien angezeigt werden. Sicher könnte ich alle Dateien anzeigen lassen, aber da dieses Vezeichnis zum Speichern von txt-Dateien verwendet wird, wäre es übersichtlicher nur diese anzuzeigen.UliTs hat geschrieben:Hallo Peternmb,
Du schreibst am Anfang, dass du ein Verzeichnis vorgeben willst, und die darin befindlichen Text-Dateien anzeigen möchtest.
Ich meine, dies geschieht mit dem obigen Code![]()
Zwischendurch schreibst Du, Du möchtest nur ein Verzeichnis auswählen. Warum möchtest Du dann die Text-Dateien anzeigen?
Uli
JA, das wäre eigentlich genau was ich suche - das Problem dabei ist allerdings, dass z.B. unter Win7 der Ordner ProgramData nicht angezeigt wird, auch wenn dort in der Ordner-Ansicht die Option "ausgeblendete Dateien, Ordner und Laufwerke anzeigen" markiert ist.AUGE_OHR hat geschrieben: das was du nun "sucht" ist die SHBrowseForFolderA API Function http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Ein Beispiel findest du im Thread http://www.xbaseforum.de/viewtopic.php?f=32&t=860 was Günter Beyes in seinem FolderBrowseSample verwendetDemonstration der API-Funktion SHBrowseForFolder in Xbase++.
Bap.dll wird nicht benötigt.
Code: Alles auswählen
*-------------------------------------------------------------
FUNCTION GetFilenameOpen(cTitle,lCenter,cFilter,aFileFilters) // aFileFilters nur Win32
local oFileDlg, cFile, cAltCurDir, cAltCurDrive, cFilterOhnePfad
DEFAULT cTitle TO "Öffnen ..."
DEFAULT lCenter TO .t.
DEFAULT cFilter TO "*.*"
do case
case "\" $ cFilter
cFilterOhnePfad := substr(cFilter,rat("\",cFilter)+1 )
case ":" $ cFilter
cFilterOhnePfad := substr(cFilter,rat(":",cFilter)+1 )
otherwise
cFilterOhnePfad := cFilter
endcase
DEFAULT aFileFilters TO { { cFilterOhnePfad , cFilterOhnePfad } }
cAltCurDrive := CurDrive()
cAltCurDir := CurDir()
oFileDlg := XbpFileDialog():new()
oFileDlg:center := lCenter
oFileDlg:title := cTitle
oFileDlg:FileFilters := aFileFilters
oFileDlg:create()
cFile := oFileDlg:open(cFilter)
oFileDlg:destroy()
CurDrive(cAltCurDrive)
CurDir(cAltCurDrive+":\"+cAltCurDir)
return cFile
*-------------------------------------------------------------
FUNCTION GetFilenameSaveAs(cTitle,lCenter,cFileName,lFileList)
local oFileDlg, cFile, cAltCurDir, cAltCurDrive
DEFAULT cTitle TO "Speichern unter ..."
DEFAULT lCenter TO .t.
DEFAULT lFileList TO .t.
DEFAULT cFileName TO "*.*"
cAltCurDrive := CurDrive()
cAltCurDir := CurDir()
oFileDlg := XbpFileDialog():new()
oFileDlg:center := lCenter
oFileDlg:title := cTitle
oFileDlg:create()
cFile := oFileDlg:SaveAs(cFileName,lFileList,lCenter)
oFileDlg:destroy()
CurDrive(cAltCurDrive)
CurDir(cAltCurDrive+":\"+cAltCurDir)
return cFile
hm ... ist "ProgramData" nicht eine "Symbol-link" ?peternmb hat geschrieben:JA, das wäre eigentlich genau was ich suche - das Problem dabei ist allerdings, dass z.B. unter Win7 der Ordner ProgramData nicht angezeigt wird, auch wenn dort in der Ordner-Ansicht die Option "ausgeblendete Dateien, Ordner und Laufwerke anzeigen" markiert ist.
Nein, eigentlich nicht. Man kann es schön z.B. im Firefox unter Win7 sehen. Der Folderbrowser dort (z.B. zum Festlegen des Download-Verzeichnisses) zeigt das Verzeichnis ProgramData nur an, wenn der Ordner sichtbar gemacht ist.AUGE_OHR hat geschrieben:hm ... ist "ProgramData" nicht eine "Symbol-link" ?
falls das Problem noch nicht gelöst ist : das sind "spezial" Folder in die man nicht mit "CD" so einfach rein kommt.peternmb hat geschrieben:Nein, eigentlich nicht. Man kann es schön z.B. im Firefox unter Win7 sehen. Der Folderbrowser dort (z.B. zum Festlegen des Download-Verzeichnisses) zeigt das Verzeichnis ProgramData nur an, wenn der Ordner sichtbar gemacht ist.AUGE_OHR hat geschrieben:hm ... ist "ProgramData" nicht eine "Symbol-link" ?
Code: Alles auswählen
LOCAL cDir := TShellFolders():cDesktopDir
oFD := XbpFileDialog()...
cPathName := oFD:SaveAs(cdir+"hier abspeichern",,.T.)
IF .NOT. EMPTY(cPathname)
*** extract path in case user selected a file
nPosi := RAT("\",cPathName)
IF nPosi > 0
cPathName := UPPER(LEFT(cPathName,nPosi))
ENDIF
ENDIF
RETURN cPathName