-
Larin © (22.12.17 09:31) [0]Как задать OpenDialog1.InitialDir, чтобы диалог открытия файла по умолчанию открывался на два уровня выше, чем экзешник? Спасибо.
-
Inovet © (22.12.17 09:49) [1]'..\..'
или
'..\..\' + ExtractFileDir(Application.ExeName) -
Larin © (22.12.17 10:11) [2]Попробовал три варианта:
OpenDialog1.InitialDir := '..\..' + ExtractFileDir(ParamStr(0));
OpenDialog1.InitialDir := '..\..';
OpenDialog1.InitialDir := ExtractFileDir(ParamStr(0)) + '..\..';
Открывает "Документы" -
Игорь Шевченко © (22.12.17 10:48) [3]var
S: string;
begin
S := GetCurrentDir;
try
SetCurrentDir(ExtractFileDir(ParamStr(0)));
OpenDialog1.InitialDir := ExtractFileDir(ExpandFileName('..\..\'));
finally
SetCurrentDir(S);
end; -
Inovet © (22.12.17 11:00) [4]> [2] Larin © (22.12.17 10:11)
> ExtractFileDir(ParamStr(0)) + '..\..'
Тогда так
ExpandFileName(ExtractFileDir(ParamStr(0)) + '\..\..');
Вообще, лучше сохранять путь где-нибудь в настройках, ещё лучше хранить (заодно и настройуи там) в специальных папках для этого предназначенных.
SHGetFolderPath с CSIDL_APPDATA
и в ней уже создать "МояПрограмма"
https://msdn.microsoft.com/en-us/library/windows/desktop/bb762181(v=vs.85).aspx -
Larin © (22.12.17 11:00) [5]
> Игорь Шевченко © (22.12.17 10:48) [3]
> var
you're the champ!