Discusión sobre el artículo "Interfaces gráficas VIII: Control "Explorador de archivos" (Capítulo 3)" - página 4
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
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 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; path: ChartScreenshot\
CProgram::OnEvent > id: 1024; full path: D:\#TradingTerminals\MetaTrader 5 pretest\MQL5\Files\ChartScreenshot\
Ejemplo:
//---
...
//---
CProgram::OnEvent > id: 1024; path: ChartScreenshot\
CProgram::OnEvent > id: 1024; full path: D:\#TradingTerminals\MetaTrader 5 pretest\MQL5\Files\ChartScreenshot\
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.
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?
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. No puedo decirte el momento todavía.
Bien. Bueno... sin prisa ;)