Обсуждение статьи "Графические интерфейсы VIII: Элемент "Файловый навигатор" (Глава 3)" - страница 4

 
Реter Konow:

Логика подсказывает мне, что эти два варианта взаимоисключающие. Если это не так, то я буду только рад. Работаю над завершением проекта. Сколько еще это займет времени загадывать не берусь, но проект будет завершен. 

Мой проект тоже ещё далеко не завершён. От заинтересованных пользователей поступают интересные предложения, которые мне очень хочется реализовать. Список растёт.

Реter Konow: 

Возможно, в будущем мы с Вами даже будем сотрудничать...)

Возможно всё. ) 

 
Толь, вопрос: как в навигаторе выбрать не файл, а папку, в которую будут сохраняться файлы программы?
 
Artyom Trishkin:
Толь, вопрос: как в навигаторе выбрать не файл, а папку, в которую будут сохраняться файлы программы?

Пример:

//---

//+------------------------------------------------------------------+
//| Обработчик событий                                               |
//+------------------------------------------------------------------+
void CProgram::OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
  {
//--- Обработка события "Изменение пути в древовидном списке"
   if(id==CHARTEVENT_CUSTOM+ON_CHANGE_TREE_PATH)
     {
      ::Print(__FUNCTION__," > id: ",id,"; file name: ",m_navigator.SelectedFile());
      ::Print(__FUNCTION__," > id: ",id,"; path: ",m_navigator.CurrentPath()+m_navigator.SelectedFile());
      ::Print(__FUNCTION__," > id: ",id,"; full path: ",m_navigator.CurrentFullPath()+m_navigator.SelectedFile());
      //--- Если выделен файл, прочитаем его (первые три строки)
      if(m_navigator.SelectedFile()!="")
        {
         //--- Сформируем путь к файлу
         string path=m_navigator.CurrentPath()+m_navigator.SelectedFile();
         //--- Получим хэндл указанного файла
         int filehandle=::FileOpen(path,FILE_READ|FILE_TXT|FILE_ANSI|m_navigator.DirectoryArea(),'\n');
         //--- Если хэндл получен, прочитаем три первые строки
         if(filehandle!=INVALID_HANDLE)
           {
            ::Print(__FUNCTION__," > Открыт файл: ",path);
            ::Print(__FUNCTION__," > Строка 01: ",::FileReadString(filehandle));
            ::Print(__FUNCTION__," > Строка 02: ",::FileReadString(filehandle));
            ::Print(__FUNCTION__," > Строка 03: ",::FileReadString(filehandle));
           }
         //--- Закроем файл
         ::FileClose(filehandle);
        }
      ::Print("---");
      return;
     }
  }

//---

CProgram::OnEvent > id: 1024; file name:
CProgram::OnEvent > id: 1024; path: ChartScreenshot\
CProgram::OnEvent > id: 1024; full path: D:\#TradingTerminals\MetaTrader 5 pretest\MQL5\Files\ChartScreenshot\
 
Anatoli Kazharski:

Пример:

//---

...

//---

CProgram::OnEvent > id: 1024; file name:
CProgram::OnEvent > id: 1024; path: ChartScreenshot\
CProgram::OnEvent > id: 1024; full path: D:\#TradingTerminals\MetaTrader 5 pretest\MQL5\Files\ChartScreenshot\
Спасибо.
 
Anatoli Kazharski:
Толь, ещё вопрос: как в навигаторе, после создания нового файла из программы, увидеть изменения в каталогах, отображаемым навигатором? Пока только переключение таймфрейма приводит к обновлению данных в навигаторе. Метод Reset() в CFileNavigator.mqh не даёт желаемого результата.
 
Artyom Trishkin:
Толь, ещё вопрос: как в навигаторе, после создания нового файла из программы, увидеть изменения в каталогах, отображаемым навигатором? Пока только переключение таймфрейма приводит к обновлению данных в навигаторе. Метод Reset() в CFileNavigator.mqh не даёт желаемого результата.
Пока не реализовано, но в планах есть.
 
Anatoli Kazharski:
Пока не реализовано, но в планах есть.

Понятно. Бум ждать...

Ещё вопрос: подпапки в навигаторе располагаются соответственно общего алфавитного списка. Это не удобно:


Будет исправление?

 
Artyom Trishkin:

Ещё вопрос: подпапки в навигаторе располагаются соответственно общего алфавитного списка. Это не удобно:

... 

Будет исправление?

Согласен, что неудобно. Исправление будет. О сроках пока не могу сказать. 
 
Anatoli Kazharski:
Согласен, что неудобно. Исправление будет. О сроках пока не могу сказать. 
Ясно. Ну... не к спеху ;)
 
Artyom Trishkin:
Ясно. Ну... не к спеху ;)
Кстати, именно в такой последовательности отдаётся список при чтении файловой системы. То есть не в той последовательности, как видишь это в файловом навигаторе операционной системы.
Причина обращения: