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

 
EasyAndFast GUI Fehler

MT4 Version.

Experten\Artikel09\TestLibrary03

Der Edit flackert immer.

Anatoli Kazharski Bitte helfen Sie, diesen Fehler zu beheben.

https://www.mql5.com/en/forum/274301


EasyAndFast GUI bug
EasyAndFast GUI bug
  • 2018.08.20
  • www.mql5.com
I download the library of the last MT4 version https://www.mql5.com/en/code/19703 Experts\Article09\TestLibrary03 The Edit is always flickering...
 
Oleksii Chepurnyi:

Guten Tag.

Größeres Problem :)

Erstellen Sie ein dynamisches Objekt, zum Beispiel ein Etikett

...

Ich habe die Bibliothek für die Erstellung dynamischer Objekte noch nicht getestet, daher kann ich Ihnen jetzt keinen Rat geben.

 

Ein weiteres Beispiel für eine Anwendung, deren grafische Benutzeroberfläche mit dieser Bibliothek erstellt wurde:


 
greentreen:

MT4 Version.

Leider kann ich jetzt nicht mehr helfen, da es für MT4 nicht mehr funktioniert. Diese Version der Bibliothek wurde nur auf dem MT5 getestet.

 
Anatoli Kazharski:

Ich habe die Bibliothek für die dynamische Objekterstellung nicht getestet, daher kann ich Ihnen im Moment keinen Rat geben.

Das dachte ich mir schon :)

Für einfache Objekte habe ich dies geschrieben:

//+------------------------------------------------------------------+
//|| Entfernt einen Zeiger aus dem Array der Elemente |
//+------------------------------------------------------------------+
void CWndContainer::DeleteElementsFromArray(const int window_index,const int id)
  {
   int windows_total=::ArraySize(m_windows);
//--- Wenn keine Formulare für Steuerelemente in der Datenbank vorhanden sind
   if(windows_total<1)
     {
      ::Print(__FUNCTION__," > Es gibt nicht nur eine Form.");
      return;
     }
//--- Wenn die Anfrage für ein nicht existierendes Formular ist
   if(window_index>=windows_total)
     {
      ::Print(PREVENTING_OUT_OF_RANGE," window_index: ",window_index,"; windows total: ",windows_total);
      return;
     }
//--- Elemente aus dem gemeinsamen Array entfernen
   DeleteElement(id,m_wnd[window_index].m_elements);
//--- Entfernen der Hauptelemente aus dem Array
   DeleteElement(id,m_wnd[window_index].m_main_elements);
//--- 
   DeleteElement(id,m_wnd[window_index].m_timer_elements);
//--- 
   DeleteElement(id,m_wnd[window_index].m_available_elements);
//--- 
   DeleteElement(id,m_wnd[window_index].m_auto_x_resize_elements);
//--- 
   DeleteElement(id,m_wnd[window_index].m_auto_y_resize_elements);
  }
//+------------------------------------------------------------------+
//|| Entfernt einen Zeiger aus dem Array der Elemente |
//+------------------------------------------------------------------+
template<typename T>
void CWndContainer::DeleteElement(const int id,T &array[])
  {
   bool del=false;
   for(int i=0;i<ArraySize(array);i++)
     {
      if(del)
        {
         if(i==ArraySize(array)-1) break;
         array[i] = array[i+1];
         continue;
        }
      if(array[i].Id()==id)
        {
         del=true;
         if(i==ArraySize(array)-1) break;
         array[i] = array[i+1];
        }
     }
   if(del) ArrayResize(array,ArraySize(array)-1,RESERVE_SIZE_ARRAY);
  }
//+------------------------------------------------------------------+
 

Können Sie mir sagen, in der Tabelle die Schaltfläche mit einem Bild wird nur in der ersten Spalte hinzugefügt, und in den Rest nicht funktioniert.

Ist das ein Fehler oder nicht?

 
Vladimir Ananich:

In der Tabelle wird die Schaltfläche mit dem Bild nur in der ersten Spalte hinzugefügt, in den anderen Spalten funktioniert sie nicht.

Sie können zu allen Spalten hinzufügen.

 
Anatoli Kazharski:

Sie können zu allem etwas hinzufügen.

Danke, ich habe es herausgefunden.

Aber seltsamerweise ist das Bild nicht sichtbar, wenn die Ausrichtung in der Zelle auf Mitte oder rechts eingestellt ist.

Wenn die Ausrichtung links ist, funktioniert es gut.

 
Vladimir Ananich:

Danke, ich hab's schon.

Aber seltsamerweise ist das Bild nicht sichtbar, wenn die Ausrichtung in der Zelle auf Mitte oder rechter Rand eingestellt ist.

Wenn es am linken Rand ist, funktioniert es gut.

Ja, jetzt gibt es eine solche Einschränkung (nur linker Rand).