Diskussion zum Artikel "Grafische Interfaces VIII: Das Datei-Navigator Control (Kapitel 3)" - Seite 4
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
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?
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; path: ChartScreenshot\
CProgram::OnEvent > id: 1024; full path: D:\#TradingTerminals\MetaTrader 5 pretest\MQL5\Files\ChartScreenshot\
Beispiel:
//---
...
//---
CProgram::OnEvent > id: 1024; path: ChartScreenshot\
CProgram::OnEvent > id: 1024; full path: D:\#TradingTerminals\MetaTrader 5 pretest\MQL5\Files\ChartScreenshot\
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.
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?
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 lästig ist. Es wird eine Lösung geben. Ich kann Ihnen den Zeitpunkt noch nicht sagen.
Richtig. Nun ja... ich habe es nicht eilig ;)