Klassen für die Erstellung von Tafeln und Dialogen

 

Dies sind die Klassen. Natürlich gibt es eine Menge Fragen, sogar zu viele. Aber eine ist im Moment die wichtigste.

Es gibt keine Möglichkeit, aus dem Indikator im Unterfenster ein Panel im Preisdiagramm zu erstellen?

 
Dmitry Fedoseev:

Dies sind die Klassen. Natürlich gibt es eine Menge Fragen, sogar zu viele. Aber eine ist im Moment die wichtigste.

Es gibt keine Möglichkeit, aus einem Indikator in einem Unterfenster ein Panel in einem Preisdiagramm zu erstellen?

Ist es nicht (\MQL5\Indikatoren\Beispiele\Panels\SimplePanel\SimplePanel.mq5)?

EURUSDM1

 
Vladimir Karputov:

Ist dies (\MQL5\Indicators\Examples\Panels\SimplePanel\SimplePanel.mq5) nicht das Richtige?

Das ist sie nicht. Der Indikator selbst wird im Unterfenster gezeichnet, während das Panel auf dem Preisdiagramm erstellt werden muss. Es gibt keine Reaktion auf den Parameter subwin. Nach dem Code in Dialog.mqh zu urteilen, sollte dies nicht der Fall sein:

bool CAppDialog::CreateIndicator(const int x1,const int y1,const int x2,const int y2)
  {
   int width=m_chart.WidthInPixels();
//--- geometry for the minimized state
   m_min_rect.LeftTop(0,0);
   m_min_rect.Width(width);
   m_min_rect.Height(CONTROLS_DIALOG_MINIMIZE_HEIGHT-2*CONTROLS_BORDER_WIDTH);
//--- determine subwindow
   m_subwin=ChartWindowFind();

Ich habe bereits einen Ausweg aus dieser Situation gefunden, sehr knifflig (und sehr ungewöhnlich, wird in dem Artikel sein). Dennoch ist die Denkweise des Schöpfers dieser Klassen sehr interessant.

 
Dmitry Fedoseev:

Falsch. Der Indikator selbst wird im Unterfenster gezeichnet, aber das Panel muss im Preisdiagramm erstellt werden. Auf den Parameter subwin gibt es keine Reaktion. Nach dem Code in Dialog.mqh zu urteilen, sollte das nicht der Fall sein:

bool CAppDialog::CreateIndicator(const int x1,const int y1,const int x2,const int y2)
  {
   int width=m_chart.WidthInPixels();
//--- geometry for the minimized state
   m_min_rect.LeftTop(0,0);
   m_min_rect.Width(width);
   m_min_rect.Height(CONTROLS_DIALOG_MINIMIZE_HEIGHT-2*CONTROLS_BORDER_WIDTH);
//--- determine subwindow
   m_subwin=ChartWindowFind();

Ich habe bereits einen Ausweg aus dieser Situation gefunden, sehr knifflig (und sehr ungewöhnlich, wird in dem Artikel sein). Dennoch ist die Denkweise des Schöpfers dieser Klassen sehr interessant.

Ich habe es nicht getan - wenn der Indikator ein Panel auf der Grundlage von Klassen zur Erstellung von Dialogen und Panels erstellt, tut er dies in einem eigenen Fenster. Wahrscheinlich gibt es auch eine Verbindung zum Empfang von Ereignissen.
 

Eine weitere Panne ist entdeckt worden. Ich erstelle ein Panel aus dem Indikator auf dem Preisdiagramm, und wenn es einen Indikator im Unterfenster auf dem Diagramm gibt, stört das Panel.

Ein Geschenk der Hölle, keine Klassen für die Erstellung von Panels und Dialogen.

 

Wie sollte die GUI aussehen? Welche Kontrollen planen Sie zu verwenden? Ich kann Ihnen helfen, eine grafische Benutzeroberfläche für alle Artikel zu erstellen, für die Sie eine benötigen, indem Sie meine Version verwenden.

Hier ist die neueste Version (Build 4) der Bibliothek:Graphic Interfaces X: Standard Graphics Element (Build 4)

Wenn Sie Interesse haben, können wir unter vier Augen weiterreden.

 
Anatoli Kazharski:

Wie sollte die GUI aussehen? Welche Kontrollen planen Sie zu verwenden? Ich kann Ihnen helfen, eine GUI für alle Artikel zu erstellen, für die Sie eine benötigen, indem Sie meine Version verwenden.

Hier ist die neueste Version (Build 4) der Bibliothek:Graphic Interfaces X: Standard Graphics Element (Build 4)

Wenn Sie Interesse haben, können wir unter vier Augen weiterreden.

Ich weiß nicht, was es sein soll. Wenn ich mir hier die Anzahl der Themen mit GUI ansehe, denke ich, dass Roche vielleicht beschlossen hat, die Standardklassen für die Erstellung von Panels und Dialogen zu popularisieren. Sie sollten nicht popularisiert werden, sondern für immer in Vergessenheit geraten.

Wenn es keine speziellen Anforderungen an Artikel zur GUI-Erstellung gibt (ich hoffe, Roche wird sie irgendwann beantworten), kann ich selbst etwas erstellen. Ich kann Ihre Artikel auch selbst lesen. Aber ich bin es einfach nicht gewohnt, meine Probleme auf jemand anderen zu schieben.

 
Dmitry Fedoseev:

...

Ich kann Ihre Artikel selbst lesen. Es ist nur so, dass ich nicht die Angewohnheit habe, meine Probleme auf jemand anderen zu schieben.

Es ist nicht kompliziert. Ich meine, es würde nicht viel von meiner Zeit in Anspruch nehmen. Außerdem ist es für mich interessant.

In einer Minute ist die Vorlage für den Indikator zu diesem Thema in diesem Thread fertig:

//---

Das Archiv mit den Dateien befindet sich im Trailer.

Dateien:
Test.zip  3 kb
 
Anatoli Kazharski:

Dort ist es nicht schwierig. Ich meine, es würde nicht viel Zeit in Anspruch nehmen.

Es dauert nur eine Minute, und die Vorlage für den Indikator für die Frage in diesem Thread ist fertig:

//---

Ein Archiv mit Dateien im Trailer.

Anatoly, haben Sie und MQ nicht darüber gesprochen, Ihre Klassen in die Standardbibliothek aufzunehmen? Sie haben so einen tollen Job + Artikel gemacht, alles ist schön, während die Standardbibliothek nicht damit glänzt.

Oder würden Sie es als Alternative tun...

 
Alexey Kozitsyn:

Anatoly, haben Sie und MQ immer noch nicht darüber gesprochen, Ihre Klassen in die Standardbibliothek aufzunehmen? Sie haben so viel Arbeit + Artikel gemacht - alles ist schön, und die Standardbibliothek glänzt nicht damit.

Oder würden Sie es als Alternative tun...

Als Alternative haben Sie bereits eine. Aber um sie in die Standardbibliothek aufzunehmen, ist viel zu tun. Ich möchte kein unausgereiftes Produkt herausbringen. Beim derzeitigen Stand der Umsetzung bin ich nicht einverstanden, selbst wenn alle Ja sagen.
 
Anatoli Kazharski:

Dort ist es nicht schwierig. Ich meine, es würde nicht viel von meiner Zeit in Anspruch nehmen. Außerdem ist es für mich interessant.

In einer Minute ist die Indikatorvorlage für die Frage in diesem Thread fertig:

//---

Das Archiv mit den Dateien befindet sich im Trailer.

Na gut, ich werde mich umhören. Aber in ein paar Tagen. Ich muss mich eine Weile ausruhen, bin überhitzt. Ja, und ich würde gerne eine Antwort von Roche zu den Anforderungen an die grafische Benutzeroberfläche erhalten.

Wenn es Ihnen nichts ausmacht, zeigen Sie mir eine Vorlage mit einem Fenster, wie auf dem Bild oben, mit zwei Eingabefeldern mit Spins, zwei Dropdown-Listen und einer Schaltfläche. Natürlich sollten die Ereignisse behandelt werden, und ein Code-Beispiel, wie man die Größe des Fensters ändert, wäre auch nett.

Der Hauptpunkt meiner Aufgabe ist, dass ich eine Reihe von Steuerelementen auf dem Formular on-the-fly ändern müssen.
Grund der Beschwerde: