• 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!
Есть новые Нет новых   [118645   +51][b:0][p:0.001]