Diskussion zum Artikel "Wie erstellt man ein grafisches Panel beliebiger Komplexität?" - Seite 11

 
Vladimir Karputov:

Es ist notwendig, dass alle Elemente der Tafel neu gezeichnet werden - auf diese Weise werden sie die "obere" Position einnehmen.

Ich verstehe, danke! Verfügt die Klasse CAppDialog über eine eingebaute Methode zum Neuzeichnen aller Elemente? Wenn nicht, wäre es richtig, dies in einer Nachfolgeklasse zu implementieren:

void CControlsDialog::Redraw(void)
  {
   this.Visible(false);
   this.Visible(true);
  }

In der Praxis funktioniert es, ich habe es überprüft.

 
Janis Ozols:

Ich verstehe, danke! Hat die CAppDialog-Klasse eine eingebaute Methode, um alle Elemente neu zu zeichnen? Wenn nicht, wäre es richtig, dies in einer Nachfolgeklasse zu implementieren:

In der Praxis funktioniert es, ich habe es überprüft.

Es mag andere Varianten geben - aber es sollte funktionieren, weil das ausgeblendete Panel wieder neu gezeichnet werden sollte - so dass alle seine Elemente oben sind.

 
Janis Ozols:

Ich verstehe, danke! Hat die CAppDialog-Klasse eine eingebaute Methode, um alle Elemente neu zu zeichnen? Wenn nicht, wäre es richtig, dies in einer Nachfolgeklasse zu implementieren:

In der Praxis funktioniert es, ich habe es überprüft.

Soweit ich mich erinnere, wird das Diagramm mit der Methode Run() neu gezeichnet.
 
Vasiliy Pushkaryov:
Soweit ich mich erinnere, wird das Diagramm mit der Methode Run() neu gezeichnet.

Ja, das Diagramm wird neu gezeichnet. Danke, ich werde es versuchen!

bool CAppDialog::Run(void)
  {
//--- Diagramm für Dialog neu zeichnen ungültig machen
   m_chart.Redraw();
//--- hier beginnen wir, den Steuerelementen IDs zuzuweisen
   if(Id(m_subwin*CONTROLS_MAXIMUM_ID)>CONTROLS_MAXIMUM_ID)
     {
      Print("CAppDialog: too many objects");
      return(false);
     }
//--- erfolgreich
   return(true);
  }

UPD: Ich habe es versucht. Leider hat es nicht funktioniert. Anscheinend wird mit dieser Methode das Diagramm selbst neu gezeichnet, aber nicht das Panel.
 

Hallo an alle

Erstens, danke für Vladimir Karputov, um diesen Artikel zu teilen.

Ich bin neu, mein Panel für einen Anfänger zu entwerfen.

Ich möchte bestätigen, dass es möglich ist, dieses Panel wie Diagramm abzudocken.

Wenn ja, wo kann ich die Methode finden? danke.

Vladimir Karputov
Vladimir Karputov
  • 2021.09.01
  • www.mql5.com
Trader's profile
 
Quan tum # :

***

Ich möchte bestätigen, dass es möglich ist, dieses Panel wie ein Diagramm abzudocken.

Wenn ja, wo kann ich die Methode finden? danke.

Ich verstehe das nicht.

 
Vladimir Karputov #:

Das verstehe ich nicht.

In MT5 können wir mit der rechten Maustaste auf den Chart klicken und wir werden die "angedockt" sehen. (im Anhang)

Wenn wir darauf klicken, wird das Chart-Fenster außerhalb der Plattform unabhängig. Das bedeutet "undocked".

Also, ich möchte bestätigen, dass ist das Panel auch tun können, diese unabhängig von der Chart? Ich danke Ihnen.

Dateien:
 
Quan tum # :

In MT5 können wir mit der rechten Maustaste auf das Diagramm klicken und wir werden das "angedockt" sehen. (im Anhang)

Wenn wir darauf klicken, wird das Chart-Fenster außerhalb der Plattform unabhängig. Das bedeutet "undocked".

Also, ich möchte bestätigen, dass ist das Panel auch tun können, unabhängig von der Tabelle? Ich danke Ihnen.

Sie haben Ihre eigene Frage selbst beantwortet: Sie selbst wählen das Menü FÜR DAS AKTUELLE CHART-FENSTER. Was hat das Panel damit zu tun?

 
Vladimir Karputov #:

Sie haben Ihre eigene Frage selbst beantwortet: Sie selbst wählen das Menü FÜR DAS AKTUELLE KARTENFENSTER. Was hat das Panel damit zu tun?

Entschuldigung, vielleicht habe ich Sie missverstanden.
Ich meine, dass es möglich ist, das Panel außerhalb des Diagramms abzudocken.
 
Quan tum # :
Entschuldigung, vielleicht habe ich Sie missverstanden.
Ich meine, ob es möglich ist, das Panel außerhalb der Karte abzudocken.

Das ist nicht möglich. Das Panel ist mit der Karte verbunden.