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

 
Anatoli Kazharski:

Sie unterscheidet sich bereits erheblich von dem, was auf der Website veröffentlicht ist.

Und werden Vorschläge für Änderungen an der Bibliothek angenommen? :)

 
Oleksii Chepurnyi:

Und werden Vorschläge für Bibliotheksänderungen angenommen? :)

Zumindest werden sie immer berücksichtigt.

 

Die MQ5-Datei.

Nicht die mqh, die müssen Sie nicht kompilieren.

 
Anatoli Kazharski:

Zumindest immer in Betracht gezogen.

Ich fange mal mit einer Frage an, vielleicht habe ich sie nur noch nicht gefunden :) Gibt es eine andere Textausrichtung, z.B. in einer Beschriftung, als mittig? Und gibt es eine Möglichkeit, den Textstil einzustellen, fett, kursiv, usw.?
 
Oleksii Chepurnyi:
Ich beginne mit einer Frage, vielleicht habe ich sie nur noch nicht gefunden :) Gibt es eine andere Textausrichtung, z. B. in einem Etikett, als mittig? Und gibt es eine Option zum Einstellen des Textstils, fett, kursiv, usw.?

Bis jetzt nur so:

//--- Schrifteigenschaften
   m_canvas.FontSet(m_font,-m_font_size*10,FW_NORMAL);
//--- Zeichnen von Text unter Berücksichtigung des Ausrichtungsmodus "Mitte
   if(m_is_center_text)
     {
      x =m_x_size>>1;
      y =m_y_size>>1;
      m_canvas.TextOut(x,y,m_label_text,::ColorToARGB(clr),TA_CENTER|TA_VCENTER);
     }
   else
      m_canvas.TextOut(x,y,m_label_text,::ColorToARGB(clr),TA_LEFT);
 
Anatoli Kazharski:

Das ist alles für den Moment:

Erster Satz also.

Enums.mqh.

//+------------------------------------------------------------------+
//| Textausrichtung|
//+------------------------------------------------------------------+
enum ENUM_TEXT_ALIGN
  {
   AT_LEFT_TOP,
   AT_CENTER_TOP,
   AT_RIGHT_TOP,
   AT_LEFT_CENTER,
   AT_CENTER_CENTER,
   AT_RIGHT_CENTER,
   AT_LEFT_BOTTOM,
   AT_CENTER_BOTTOM,
   AT_RIGHT_BOTTOM,
  };

Element.mqh

protected:
   ENUM_TEXT_ALIGN   m_text_align;
   int               m_hor_space;
   int               m_ver_space;
public:
   void              SetTextAlign(const ENUM_TEXT_ALIGN align, const int hspace, const int vspace) { m_text_align=align; m_hor_space=hspace; m_ver_space=vspace; }
   if(m_is_center_text)
     {
      x =m_x_size>>1;
      y =m_y_size>>1;
      m_canvas.TextOut(x,y,m_label_text,::ColorToARGB(clr),TA_CENTER|TA_VCENTER);
     }
   else
     {
      switch(m_text_align)
        {
         case 0: m_canvas.TextOut(x+m_hor_space,         y+m_ver_space,         m_label_text,::ColorToARGB(clr),TA_LEFT|TA_TOP);       break;  // AT_LEFT_TOP
         case 1: m_canvas.TextOut((int)round(m_x_size/2),y+m_ver_space,         m_label_text,::ColorToARGB(clr),TA_CENTER|TA_TOP);     break;  // AT_CENTER_TOP
         case 2: m_canvas.TextOut(m_x_size-m_hor_space,  y+m_ver_space,         m_label_text,::ColorToARGB(clr),TA_RIGHT|TA_TOP);      break;  // AT_RIGHT_TOP
         case 3: m_canvas.TextOut(x+m_hor_space,         (int)round(m_y_size/2),m_label_text,::ColorToARGB(clr),TA_LEFT|TA_VCENTER);   break;  // AT_LEFT_CENTER
         case 4: m_canvas.TextOut(m_x_size>>1,           m_y_size>>1,           m_label_text,::ColorToARGB(clr),TA_CENTER|TA_VCENTER); break;  // AT_CENTER_CENTER
         case 5: m_canvas.TextOut(m_x_size-m_hor_space,  (int)round(m_y_size/2),m_label_text,::ColorToARGB(clr),TA_RIGHT|TA_VCENTER);  break;  // AT_RIGHT_CENTER
         case 6: m_canvas.TextOut(x+m_hor_space,         m_y_size-m_ver_space,  m_label_text,::ColorToARGB(clr),TA_LEFT|TA_BOTTOM);    break;  // AT_LEFT_BOTTOM
         case 7: m_canvas.TextOut((int)round(m_x_size/2),m_y_size-m_ver_space,  m_label_text,::ColorToARGB(clr),TA_CENTER|TA_BOTTOM);  break;  // AT_CENTER_BOTTOM
         case 8: m_canvas.TextOut(m_x_size-m_hor_space,  m_y_size-m_ver_space,  m_label_text,::ColorToARGB(clr),TA_RIGHT|TA_BOTTOM);   break;  // AT_RIGHT_BOTTOM
         default: m_canvas.TextOut(x,y,m_label_text,::ColorToARGB(clr),TA_LEFT); break;
        }
     }

Ich habe die Stile noch nicht gemacht.

 
Oleksii Chepurnyi:

Dann der erste Vorschlag.

dann der 2. Vorschlag: einen GUI-Editor mit Drag-and-Drop-Funktionalität machen

 
Igor Makanu:

dann 2. Vorschlag: einen GUI-Editor mit Drag-and-Drop-Funktion machen

Guter Vorschlag :)

Mit Stil ist es einfacher.

protected:
   uint              m_font_style;
public:
   void              FontStyle(const int font_style)                 { m_font_style=font_style;         }

//--- Schrifteigenschaften
   m_canvas.FontSet(m_font,-m_font_size*10,m_font_style);
 
Oleksii Chepurnyi:

Also der erste Satz.

Ich habe die Stile noch nicht gemacht.

Vielleicht füge ich sie im nächsten Update hinzu.

Igor Makanu:

dann 2. Vorschlag: einen GUI-Editor mit Drag-and-Drop-Funktion machen.

Das kann ich nicht versprechen. Ich werde versuchen, Zeit dafür zu finden.

 
Anatoli Kazharski:

Das kann ich nicht versprechen. Ich werde versuchen, mir Zeit dafür zu nehmen.

Hmm, ich dachte, du würdest nein sagen, aber hier bist du... cool!