Bibliotheken: Die Bibliothek EasyAndFastGUI zum Erstellen von grafischen Interfaces - Seite 13

 

Guten Abend.

Mouse.mqh.

//+------------------------------------------------------------------+
//| Überprüfen Sie, ob sich der Zustand der linken Maustaste geändert hat.
//+------------------------------------------------------------------+
bool CMouse::CheckChangeLeftButtonState(const string mouse_state)
  {
   bool left_button_state=(bool)int(mouse_state);
//--- Senden einer Nachricht über die Änderung des Zustands der linken Maustaste
   if(m_left_button_state!=left_button_state)
      ::EventChartCustom(m_chart.ChartId(),ON_CHANGE_MOUSE_LEFT_BUTTON,0,0.0,"");
//--- Rückgabe des aktuellen Zustands der linken Maustaste
   return(left_button_state);
  }
//+------------------------------------------------------------------+

Wir übergeben hier sparam und soweit ich weiß, wird jeder Wert ungleich Null als gedrückte Maustaste behandelt. Aber Werte ungleich Null werden von allen Maustasten gegeben, mindestens aber von Shift und Control.

Ist das so beabsichtigt?

 
Oleksii Chepurnyi:

Guten Abend.

Maus.mqh

Wir übergeben hier sparam, und soweit ich weiß, wird jeder Wert ungleich Null als gedrückte Maustaste behandelt. Aber Werte ungleich Null werden von allen Maustasten gegeben, zumindest aber von Shift und Control.

Ist das so beabsichtigt?

Nein, das war nur eine vorübergehende Lösung für meine eigenen Aufgaben.

Sie scheint im Moment nicht einmal irgendwo in der Bibliothek verwendet zu werden. Kann bei Bedarf verfeinert werden.

 
Anatoli Kazharski:

Nein, das war nur eine vorübergehende Lösung für meine individuellen Aufgaben.

Sie scheint im Moment nicht einmal irgendwo in der Bibliothek verwendet zu werden. Kann bei Bedarf verfeinert werden.

Es wird sehr oft verwendet :) Zum Beispiel beim Ziehen von Fenstern, SpinEdit Quick Swipe. Überall dort, wo der Zustand der LKM geprüft wird.

Ich habe es so gemacht

//+------------------------------------------------------------------+
//| Überprüfen Sie, ob sich der Zustand der linken Maustaste geändert hat.
//+------------------------------------------------------------------+
bool CMouse::CheckChangeLeftButtonState(const string mouse_state)
  {
   bool left_button_state=((int)mouse_state==1);
//--- Senden einer Nachricht über die Änderung des Zustands der linken Maustaste
   if(m_left_button_state!=left_button_state)
      ::EventChartCustom(m_chart.ChartId(),ON_CHANGE_MOUSE_LEFT_BUTTON,0,0.0,"");
//--- Rückgabe des aktuellen Zustands der linken Maustaste
   return(left_button_state);
  }
//+------------------------------------------------------------------+
 
Anatoli Kazharski:

Nein, das war nur eine vorübergehende Lösung für meine individuellen Aufgaben.

Es scheint im Moment nicht einmal irgendwo in der Bibliothek verwendet zu werden. Kann bei Bedarf verfeinert werden.

In der neuesten Version - https://www.mql5.com/de/code/19703

kann nicht hinzugefügt werden

 //CCanvasTable m_canvas_table;

Das Problem scheint zu sein, dass ich mir Beispiele in alten Versionen anschaue!


class CProgram : public CWndEvents
  {
protected:
   //--- Zeitzähler
   CTimeCounter      m_counter1; // um den Ausführungsprozess zu aktualisieren
   CTimeCounter      m_counter2; // um Elemente in der Statusleiste zu aktualisieren
   //--- Hauptfenster
   CWindow           m_window;
   //--- Bild
   CPicture          m_picture1;
   
   //--- Hauptmenü und seine Kontextmenüs
   CMenuBar          m_menubar;
   CContextMenu      m_mb_contextmenu1;

   //--- Zeichentisch
   //CCanvasTable m_canvas_table;
   
   //--- Statuszeichenfolge
   CStatusBar        m_status_bar;

 
 

 
EasyAndFastGUI - библиотека для создания графических интерфейсов
EasyAndFastGUI - библиотека для создания графических интерфейсов
  • www.mql5.com
Библиотека EasyAndFastGUI дает возможность создавать графические интерфейсы для своих MQL-программ.
 
Yuriy Zaytsev:

In der neuesten Version - https://www.mql5.com/de/code/19703

kann nicht hinzugefügt werden

Das Problem scheint zu sein, dass ich mir Beispiele in älteren Versionen ansehe!


Ich habe Build 10 Version, https://www.mql5.com/de/articles/3042 funktioniert dort!

Ich musste etwa so vorgehen, was nicht gut ist.

MQL5\Include\EasyAndFastGUI_B10

MQL5/Einschließlich/EinfacheUndSchnelleGUI_B16

Графические интерфейсы X: Обновления для нарисованной таблицы и оптимизация кода (build 10)
Графические интерфейсы X: Обновления для нарисованной таблицы и оптимизация кода (build 10)
  • www.mql5.com
О том, для чего предназначена эта библиотека, более подробно можно прочитать в самой первой статье: Графические интерфейсы I: Подготовка структуры библиотеки (Глава 1). В конце статей каждой части представлен список глав со ссылками. Там же есть возможность загрузить к себе на компьютер полную версию библиотеки на текущей стадии разработки...
 

Wunderbare Bibliothek!

Ich habe einen einfachen, aber nützlichen Indikator für MICEX.

Aktie, % Wachstum für den Tag, dann die Standard-Daten, Volumina zu kaufen vom Beginn des Tages BuyVol, Volumina zu verkaufen SellVol, VolDelta Unterschied in den Volumina vom Beginn des Tages, werde ich die % der aktuellen Differenz in Volumina zu beenden.

grüne Delta - es ist wünschenswert, den Kauf zu halten, oder versuchen, für einen Kauf Einstiegspunkt zu suchen, etc.



 
Yuriy Zaytsev:

Habe Build 10 Version , https://www.mql5.com/de/articles/3042 funktioniert dort!

Ich hatte so etwas zu tun, was nicht gut ist.

MQL5\Include\EasyAndFastGUI_B10

MQL5\Include\EasyAndFastGUI_B16.

Danke für die Nachricht. Ich habe im Moment keine Zeit. Ich werde ein wenig später sehen, was das Problem sein könnte.

 
Yuriy Zaytsev:

Habe Build 10 Version , https://www.mql5.com/de/articles/3042 funktioniert dort!

Ich hatte so etwas zu tun, was nicht gut ist.

MQL5\Include\EasyAndFastGUI_B10

MQL5/Include/EasyAndFastGUI_B16

Nachdem die Bibliothek stark umgestaltet wurde, erinnere ich mich nicht mehr an die Build-Nummer. Wahrscheinlich gibt es keine CCanvasTable in neuen Builds :)

In den Schlussfolgerungen in den Artikeln gibt es ein allgemeines Schema der Bibliothek zum Zeitpunkt der Veröffentlichung, können Sie vergleichen.

 
hallo

ist es nicht möglich, eine Spalte mit Hilfe der Tabellenfunktion einzufärben?


Wenn Sie zwei Indikatoren hinzufügen.

Die Funktion close window schließt zwei Fenster.
Die Funktion Fenster sammeln sammelt zwei Fenster ein.
Vielen Dank für Ihre Hilfe.

Ich komme aus Brasilien und habe einen Übersetzer benutzt, um zu schreiben. Ich entschuldige mich für jeden Fehler in dieser Sprache.


 
Hallo Freunde
ich habe die folgenden Änderungen vorgenommen

In der Datei Table.mqh

      string            m_header_text;    // Text in der Spaltenüberschrift
      color             m_header_color;   // Textfarbe der Spaltenüberschrift //André
      CTCell            m_rows[];         // Array der Tabellenzeilen

----------------------------------------------------------------------------------------------------------------------
   void              HeadersColorPressed(const color clr)    { m_headers_color_pressed=clr;      }
   //void HeadersTextColor(const color clr){ m_headers_text_color=clr; } //André

----------------------------------------------------------------------------------------------------------
   void              SetHeaderText(const uint column_index,const string value);
   //--- Einstellung der Textfarbe auf die angegebene Kopfzeile //André
   void              HeadersTextColor(const color &array[]);
--------------------------------------------------------------------------------------------------------------------
//André 
//+------------------------------------------------------------------+
//| Füllt das Array der Textausrichtungsmodi |
//+------------------------------------------------------------------+
void CTable::HeadersTextColor(const color &array[])
  {
   int total=0;
//--- Verlassen, wenn ein Array der Größe Null übergeben wurde
   if((total=CheckArraySize(array))==WRONG_VALUE)
      return;
//--- Den Wert in das Array speichern
   for(int c=0; c<total; c++)
      m_columns[c].m_header_color=array[c];
  }
------------------------------------------------------------------------------------------------------------------------
      //André
      //--- Textfarbe
      uint clr=::ColorToARGB(m_columns[c].m_header_color);

In der Datei Window.mqh

//--- Behandlung des Anklickens von Formularschaltflächen
   if(id==CHARTEVENT_CUSTOM+ON_CLICK_BUTTON)
     {
      //André
      if(StringFind(sparam, CElementBase::ProgramName(), 0)<0)
         return;
      //--- Das Fenster schließen
-------------------------------------------------------------------------------
   int subwin=(CElementBase::ProgramType()==PROGRAM_INDICATOR)? ::ChartWindowFind() : m_subwin;
//--- Senden Sie eine Nachricht darüber
   //André
   //Drucken(__FUNCTION__, " " ", subwin, " ", PROGRAM_NAME);
   //::EventChartCustom(m_chart_id,ON_WINDOW_COLLAPSE,CElementBase::Id(),subwin,"");
   ::EventChartCustom(m_chart_id,ON_WINDOW_COLLAPSE,CElementBase::Id(),subwin, PROGRAM_NAME);
//--- Senden einer Nachricht über die Änderung der grafischen Oberfläche
   ::EventChartCustom(m_chart_id,ON_CHANGE_GUI,CElementBase::Id(),0.0,"");
  }
---------------------------------------------------------------------------------------
   int subwin=(CElementBase::ProgramType()==PROGRAM_INDICATOR)? ::ChartWindowFind() : m_subwin;
//--- Senden Sie eine Nachricht darüber
   //André
   //::EventChartCustom(m_chart_id,ON_WINDOW_EXPAND,CElementBase::Id(),subwin,"");
   ::EventChartCustom(m_chart_id,ON_WINDOW_EXPAND,CElementBase::Id(),subwin,PROGRAM_NAME);
//--- Senden einer Nachricht über die Änderung der grafischen Oberfläche
   ::EventChartCustom(m_chart_id,ON_CHANGE_GUI,CElementBase::Id(),0.0,"");

In der Datei WndEvents.mqh.

      return(false);
//--- Wenn der Fensterkennzeichner und die Unterfensternummer übereinstimmen
   //André
   if(m_sparam!=m_windows[0].ProgramName()) 
      return(false);
   if(m_lparam==m_windows[0].Id() && (int)m_dparam==m_subwin)


Ich habe die Zeilen mit meinem Namen auskommentiert, um die Lokalisierung zu erleichtern

Im Anhang finden Sie die Dateien mit dem geänderten vollständigen Code.

Ich hoffe, Sie haben geholfen

Dateien:
WndEvents.mqh  144 kb
Window.mqh  129 kb
Table.mqh  304 kb