Discusión sobre el artículo "Interfaces gráficas VIII: Control "Explorador de archivos" (Capítulo 3)" - página 4

 
Реter Konow:

La lógica me dice que estas dos opciones son mutuamente excluyentes. Si no es así, estaré encantado de hacerlo. Estoy trabajando para terminar el proyecto. No puedo decir cuánto tiempo llevará, pero estará terminado.

Mi proyecto también está lejos de estar terminado. Están llegando sugerencias interesantes de usuarios interesados, que me gustaría hacer realidad. La lista sigue creciendo.

Retag Konow:

Quizá tú y yo colaboremos en el futuro :)

Todo es posible. )

 
Tol, pregunta: ¿cómo seleccionar no un archivo, sino una carpeta donde se guardarán los archivos del programa en el navegador?
 
Artyom Trishkin:
Tol, pregunta: ¿cómo seleccionar en el navegador no un archivo sino una carpeta en la que se guardarán los archivos del programa?

Ejemplo:

//---

//+------------------------------------------------------------------+
//| Manejador de eventos|
//+------------------------------------------------------------------+
void CProgram::OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
  {
//--- Manejo del evento "Cambiar ruta en la lista de árboles
   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());
      //--- Si se selecciona un fichero, leerlo (tres primeras líneas)
      if(m_navigator.SelectedFile()!="")
        {
         //--- Forma la ruta al archivo
         string path=m_navigator.CurrentPath()+m_navigator.SelectedFile();
         //--- Obtener el handle del fichero especificado
         int filehandle=::FileOpen(path,FILE_READ|FILE_TXT|FILE_ANSI|m_navigator.DirectoryArea(),'\n');
         //--- Si se recibe el handle, leer las tres primeras líneas
         if(filehandle!=INVALID_HANDLE)
           {
            ::Print(__FUNCTION__," > Archivo abierto: ",path);
            ::Print(__FUNCTION__," > Línea 01: ",::FileReadString(filehandle));
            ::Print(__FUNCTION__," > Línea 02: ",::FileReadString(filehandle));
            ::Print(__FUNCTION__," > Línea 03: ",::FileReadString(filehandle));
           }
         //--- Cierra el archivo
         ::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:

Ejemplo:

//---

...

//---

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\
Gracias.
 
Anatoli Kazharski:
Tol, otra pregunta: ¿cómo puedo ver los cambios en los catálogos que muestra el navegador después de crear un nuevo archivo desde el programa? Hasta ahora sólo el cambio del marco temporal conduce a la actualización de los datos en el navegador. El método Reset() en CFileNavigator.mqh no da el resultado deseado.
 
Artyom Trishkin:
Tol, otra pregunta: ¿cómo puedo ver los cambios en los catálogos que muestra el navegador después de crear un nuevo archivo desde el programa? Hasta ahora sólo el cambio del marco temporal conduce a la actualización de los datos en el navegador. El método Reset() en CFileNavigator.mqh no da el resultado deseado.
Aún no se ha implementado, pero está en los planes.
 
Anatoli Kazharski:
Aún no se ha implementado, pero está en los planes.

Ya veo. Esperemos...

Una pregunta más: las subcarpetas en el navegador se ubican según la lista alfabética general. No es práctico:


¿Habrá una solución?

 
Artyom Trishkin:

Otra pregunta: las subcarpetas del navegador están ordenadas según la lista alfabética general. Esto no es conveniente:

...

¿Habrá alguna solución?

Estoy de acuerdo en que es un inconveniente. Habrá una solución. Aún no puedo decirte cuándo.
 
Anatoli Kazharski:
Estoy de acuerdo en que es un inconveniente. Habrá una solución. No puedo decirte el momento todavía.
Ya veo. Bueno... no hay prisa ;)
 
Artyom Trishkin:
Bien. Bueno... sin prisa ;)
Por cierto, esta es la secuencia en la que se da la lista al leer el sistema de ficheros. Es decir, no en el orden en que lo ves en el navegador de archivos del sistema operativo.