記事"グラフィカルインタフェースVIII: ファイルナビゲータコントロール(チャプター3)"についてのディスカッション - ページ 4

 
Реter Konow:

論理的に考えれば、この2つの選択肢は互いに排他的だと思う。そうでないなら、喜んでそうさせてもらうよ。私はプロジェクトの仕上げに取り組んでいる。どれくらいかかるかは言えないが、必ず完成させる。

私のプロジェクトも 完成には程遠い。興味のあるユーザーから興味深い提案が来ており、それを実現したいと思っている。リストはどんどん増えています。

リタグ・コナウ

もしかしたら、将来的にあなたと私が協力することになるかもしれませんね :)

何でも可能です。)

 
Tol、質問:ナビゲーターでファイルではなく、プログラムファイルを保存するフォルダを選択する方法は?
 
Artyom Trishkin:
Tol、質問:ナビゲーターでファイルではなく、プログラムファイルを保存するフォルダを選択する方法は?

//---

//+------------------------------------------------------------------+
//| イベントハンドラ|
//+------------------------------------------------------------------+
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());
      //--- ファイルが選択されていれば、それを読み込む(最初の3行)
      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');
         //--- ハンドルを受け取ったら、最初の3行を読む。
         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:
Tol、もうひとつの質問:プログラムから新しいファイルを作成した後、ナビゲーターが表示するカタログの変更を確認するにはどうすればよいでしょうか?今のところ、ナビゲーターでデータが更新されるのは、時間枠の切り替えだけです。CFileNavigator.mqhのReset()メソッドでは、期待する結果が得られません。
 
Artyom Trishkin:
Tol、もうひとつの質問:プログラムから新しいファイルを作成した後、ナビゲーターが表示するカタログの変更を確認するにはどうすればよいでしょうか?今のところ、ナビゲーターでデータが更新されるのは、時間枠の切り替えだけです。CFileNavigator.mqhのReset()メソッドでは、望ましい結果が得られません。
まだ実装されていませんが、計画中です。
 
Anatoli Kazharski:
まだ実施されていませんが、計画にはあります。

なるほど。待ちましょう...。

もう一つ質問です:ナビゲーターのサブフォルダーは一般的なアルファベット順のリストに従って配置されています。これは不便です:


修正はありますか?

 
Artyom Trishkin:

別の質問:ナビゲーターのサブフォルダーは、一般的なアルファベット順のリストに従って配置されています。これは不便です:

...

修正はありますか?

不便なのは同感です。修正はあるでしょう。時期はまだ言えない。
 
Anatoli Kazharski:
不便なのは同意する。修正はあるだろう。時期はまだ言えないけど。
なるほど、そうですか...焦らなくていい)
 
Artyom Trishkin:
そうだね急いではいないんだ ;)
ちなみに、これはファイルシステムを読むときのリストの順番だ。つまり、オペレーティング・システムのファイル・ナビゲーターで 見る順番ではない。