Discussão do artigo "Interfaces Gráficas VIII: O Controle Navegador de Arquivos (Capítulo 3)" - página 4

 
Реter Konow:

A lógica me diz que essas duas opções são mutuamente exclusivas. Se não for esse o caso, ficarei feliz em fazê-lo. Estou trabalhando para concluir o projeto. Não posso dizer quanto tempo levará, mas ele será concluído.

Meu projeto também está longe de ser concluído. Sugestões interessantes estão chegando de usuários interessados, que eu gostaria de realizar. A lista está crescendo.

Retag Konow:

Talvez você e eu possamos até cooperar no futuro :)

Tudo é possível. )

 
Tol, pergunta: como selecionar não um arquivo, mas uma pasta onde os arquivos do programa serão salvos no navegador?
 
Artyom Trishkin:
Tol, pergunta: como selecionar não um arquivo, mas uma pasta na qual os arquivos do programa serão salvos no navegador?

Exemplo:

//---

//+------------------------------------------------------------------+
//| Manipulador de eventos|
//+------------------------------------------------------------------+
void CProgram::OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
  {
//--- Tratamento do evento "Change path in tree list" (Alterar caminho na lista de árvores)
   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());
      //--- Se um arquivo for selecionado, leia-o (as três primeiras linhas)
      if(m_navigator.SelectedFile()!="")
        {
         //--- Forme o caminho para o arquivo
         string path=m_navigator.CurrentPath()+m_navigator.SelectedFile();
         //--- Obter o identificador do arquivo especificado
         int filehandle=::FileOpen(path,FILE_READ|FILE_TXT|FILE_ANSI|m_navigator.DirectoryArea(),'\n');
         //--- Se o identificador for recebido, leia as três primeiras linhas
         if(filehandle!=INVALID_HANDLE)
           {
            ::Print(__FUNCTION__," > Arquivo aberto: ",path);
            ::Print(__FUNCTION__," > Linha 01: ",::FileReadString(filehandle));
            ::Print(__FUNCTION__," > Linha 02: ",::FileReadString(filehandle));
            ::Print(__FUNCTION__," > Linha 03: ",::FileReadString(filehandle));
           }
         //--- Fechar o arquivo
         ::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:

Exemplo:

//---

...

//---

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\
Obrigado.
 
Anatoli Kazharski:
Tol, outra pergunta: como posso ver as alterações nos catálogos exibidos pelo navegador depois de criar um novo arquivo no programa? Até agora, somente a mudança do período de tempo leva à atualização dos dados no navegador. O método Reset() no CFileNavigator.mqh não produz o resultado desejado.
 
Artyom Trishkin:
Tol, outra pergunta: como posso ver as alterações nos catálogos exibidos pelo navegador depois de criar um novo arquivo no programa? Até agora, somente a mudança do período de tempo leva à atualização dos dados no navegador. O método Reset() no CFileNavigator.mqh não fornece o resultado desejado.
Ainda não foi implementado, mas está nos planos.
 
Anatoli Kazharski:
Ainda não foi implementado, mas está nos planos.

Estou vendo. Vamos aguardar...

Mais uma pergunta: as subpastas no navegador estão localizadas de acordo com a lista alfabética geral. Isso não é conveniente:


Haverá uma correção?

 
Artyom Trishkin:

Outra pergunta: as subpastas no navegador são organizadas de acordo com a lista alfabética geral. Isso não é conveniente:

...

Haverá uma correção?

Concordo que isso é inconveniente. Haverá uma correção. Ainda não posso lhe dizer o momento.
 
Anatoli Kazharski:
Concordo que é inconveniente. Haverá uma correção. Ainda não posso lhe dizer o momento.
Estou vendo... Bem... sem pressa ;)
 
Artyom Trishkin:
Certo. Bem... não estou com pressa ;)
A propósito, essa é a sequência em que a lista é fornecida ao ler o sistema de arquivos. Ou seja, não na ordem em que você a vê no navegador de arquivos do sistema operacional.