A little background of the program:
The program uses a tabbed interface to work on multiple files at the same time.
I'm trying to change the directory of the OpenDialog so every time I call open a file will show the directory of the file I am working on currently, but even when I set InitialDir to the file's path it always displays the last opened file directory, not the one I am setting it to.
I tried the following:
if Length(CurrentFileName) > 0 then
begin
OpenFileDialog.InitialDir :='';
SetCurrentDirectory(PChar(CurrentFileName));
OpenFileDialog.InitialDir := ExtractFileDir(CurrentFileName);
end;
if OpenFileDialog.Execute then
...
Where CurrentFileName is the full path with the filename of the current tab's opened file. But no luck.
Is there any way to achieve this?
So for example:
tab1 has c:\mydir\file.txt openedtab2 has d:\someotherdir\somefile.txt opened
If I move to tab1 and call the open function I the OpenDialog should show me the contents of c:\mydir\
I am using Delphi 7. Any help is appreciated.
Here are the rules for Windows Vista and earlier:
So, if the current FileName property is non-empty, then the InitialDir property is ignored, as is the application's current directory. That fits with what you've observed, so make sure you're clearing the FileName property between uses of your dialog box.
(The rules are different as of Windows 7, and they may foil your plans. If you open a file from the first tab, then open a file from the second tab, another attempt to open a file while the first tab is selected might not display the first tab's directory anymore.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With