Diskussion zum Artikel "Grafische Interfaces VIII: Das Datei-Navigator Control (Kapitel 3)" - Seite 4

 
Реter Konow:

Die Logik sagt mir, dass sich diese beiden Optionen gegenseitig ausschließen. Wenn das nicht der Fall ist, werde ich das gerne tun. Ich arbeite daran, das Projekt zu beenden. Ich kann nicht sagen, wie lange es dauern wird, aber es wird fertig sein.

Auch mein Projekt ist noch lange nicht fertig. Es kommen interessante Vorschläge von interessierten Nutzern, die ich gerne umsetzen möchte. Die Liste wird immer länger.

Retag Konow:

Vielleicht arbeiten Sie und ich in Zukunft sogar zusammen :)

Alles ist möglich. )

 
Tol, Frage: Wie kann man nicht eine Datei, sondern einen Ordner auswählen, in dem die Programmdateien im Navigator gespeichert werden?
 
Artyom Trishkin:
Tol, Frage: Wie kann man nicht eine Datei, sondern einen Ordner auswählen, in dem die Programmdateien im Navigator gespeichert werden?

Beispiel:

//---

//+------------------------------------------------------------------+
//| Ereignisbehandler|
//+------------------------------------------------------------------+
void CProgram::OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
  {
//--- Behandlung des Ereignisses "Pfad in der Baumliste ändern".
   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());
      //--- Wenn eine Datei ausgewählt ist, wird sie gelesen (die ersten drei Zeilen)
      if(m_navigator.SelectedFile()!="")
        {
         //--- Den Pfad zur Datei bilden
         string path=m_navigator.CurrentPath()+m_navigator.SelectedFile();
         //--- Abrufen des Handles der angegebenen Datei
         int filehandle=::FileOpen(path,FILE_READ|FILE_TXT|FILE_ANSI|m_navigator.DirectoryArea(),'\n');
         //--- Wenn der Handle empfangen wird, lesen Sie die ersten drei Zeilen
         if(filehandle!=INVALID_HANDLE)
           {
            ::Print(__FUNCTION__," > Datei öffnen: ",path);
            ::Print(__FUNCTION__," > Zeile 01: ",::FileReadString(filehandle));
            ::Print(__FUNCTION__," > Zeile 02: ",::FileReadString(filehandle));
            ::Print(__FUNCTION__," > Zeile 03: ",::FileReadString(filehandle));
           }
         //--- Schließen Sie die Datei
         ::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:

Beispiel:

//---

...

//---

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\
Dankeschön.
 
Anatoli Kazharski:
Tol, noch eine Frage: Wie kann ich Änderungen in den Katalogen sehen, die vom Navigator angezeigt werden, nachdem ich eine neue Datei im Programm erstellt habe? Bisher führt nur das Umschalten des Zeitrahmens zu einer Datenaktualisierung im Navigator. Die Methode Reset() in CFileNavigator.mqh bringt nicht das gewünschte Ergebnis.
 
Artyom Trishkin:
Tol, noch eine Frage: Wie kann ich Änderungen in den Katalogen sehen, die vom Navigator angezeigt werden, nachdem ich eine neue Datei im Programm erstellt habe? Bisher führt nur das Umschalten des Zeitrahmens zu einer Datenaktualisierung im Navigator. Die Methode Reset() in CFileNavigator.mqh bringt nicht das gewünschte Ergebnis.
Sie ist noch nicht implementiert, aber in Planung.
 
Anatoli Kazharski:
Noch nicht umgesetzt, aber in Planung.

Aha, ich verstehe. Warten wir mal ab...

Eine weitere Frage: Die Unterordner im Navigator sind nach der allgemeinen alphabetischen Liste geordnet. Das ist unpraktisch:


Wird es eine Lösung geben?

 
Artyom Trishkin:

Eine weitere Frage: Die Unterordner im Navigator sind nach der allgemeinen alphabetischen Liste geordnet. Das ist unpraktisch:

...

Wird es eine Lösung geben?

Ich stimme zu, dass es unpraktisch ist. Es wird eine Lösung geben. Ich kann Ihnen aber noch nicht sagen, wann.
 
Anatoli Kazharski:
Ich stimme zu, dass es lästig ist. Es wird eine Lösung geben. Ich kann Ihnen den Zeitpunkt noch nicht sagen.
Ich verstehe. Nun... keine Eile ;)
 
Artyom Trishkin:
Richtig. Nun ja... ich habe es nicht eilig ;)
Dies ist übrigens die Reihenfolge, in der die Liste beim Lesen des Dateisystems angezeigt wird. Das heißt, nicht in der Reihenfolge, in der Sie sie im Dateinavigator des Betriebssystems sehen.