TextSetFont

Setzt die Schrift für die Textausgabe durch Zeichnenmethoden und dann gibt das Ergebnis der Erfolg dieser Operation zurück. Die Standardschriftart ist Arial -120 (12 pt).

bool  TextSetFont(
   const string  name,            // Schriftname und Pfad zur Schriftdatei auf der Festplatte
   int           size,            // Schriftgröße
   uint          flags,           // Kombination von Flags
   int           orientation=0    // Winkel des Textes
   );

Optionen

name

[in]  Schriftname und Pfad zur Schriftdatei auf der Festplatte.

size

[in]  Die Schriftgröße kann als positive und negative Werte eingegeben werden. Bei positiven Werten ist die Größe des angegebenen Textes nicht auf Schriftgrößeneinstellungen im Betriebssystem abhängen. Bei negativen Werten wird der Wert in Zehntelpunkt angegeben, und Textgröße wird von den Systemeinstellungen ("Standardmaßstab" oder "großen Maßstab") abhängen. Weitere Informationen über die Unterschiede in den Betriebsarten finden Sie in der Note.

flags

[in]  Kombination der Flaggen, die den Stil der Schriftart beschreiben.

orientation

[in]  Horizontaler Winkel des Textes zu der Achse X, Maßeinheit ist 0,1 Grad. Das heißt orientation=450 bedeutet Neigung von 45 Grad.

Rückgabewert

Gibt true zurück, wenn die aktuelle Schrift erfolgreich gesetzt wird, ansonsten false. Mögliche Fehlercodes:

  • ERR_INVALID_PARAMETER(4003) - name ist NULL oder "" (leere Zeile),
  • ERR_INTERNAL_ERROR(4001) - Betriebssystemfehler (zum Beispiel der Versuch, eine nicht vorhandene Schriftart zu erstellen).

Hinweis

Wenn "::" im Schriftname verwendet wird, dann wird die Schriftart aus der EX5-Ressource heruntergeladen. Wenn der Schriftname name Mit der Erweiterung angegeben ist, wird die Schriftart aus einer Datei geladen, in diesem Fall - wenn der Pfad mit "\" oder "/" beginnt, wird die Datei relativ zu dem Verzeichnis MQL5 gesucht, ansonsten wird sie relativ zu dem Pfad der EX5-Datei, die die Funktion TextSetFont() anruft hat, gesucht.

Die Schriftgröße wird als positive oder negative Werte angegeben, definiert das Zeichen die Abhängigkeit der Textgröße von den Betriebssystemeinstellungen (Schriftskala).

  • Wenn die Größe durch eine positive Zahl angegeben ist, so während der Anzeige der logischen Schriftart als eine physikalische Schriftart, wird die Größe in der physikalischen Maßeinheit des Gerätes (Pixel) umgewandelt, und diese Größe entspricht der Höhe der Zeichenzellen aus verfügbaren Schriftarten. Es ist nicht empfohlen in den Fällen, wenn die gemeinsame Nutzung der durch Funktion TextOut() ausgegebenen Texten und durch das Graphikobjekt OBJ_LABEL ("Text-Label") angezeigten Texten auf einem Chart erwartet ist.
  • Wenn die Größe durch eine negative Zahl angegeben ist, so ist die angegebene Größe in Zehntelverknüpfungspunkt angegeben (Wert -350 bedeutet 35 logischen Punkte) und wird dividiert durch 10, und dann wird der resultierende Wert in die physikalischen Geräteeinheiten (Pixel) umgewandelt und entspricht den absoluten Wert der Symbolhöhe von verfügbaren Schriftarten. Um den Text auf dem Bildschirm mit der gleichen Größe wie im Objekt OBJ_LABEL zu erhalten, nehmen Sie die Schriftgröße, die in Objekt-Eigenschaften angegeben ist, und multiplizieren Sie sie mit -10.

Die Flaggen können als eine Kombination von Stil-Flaggen mit eine der Flaggen, die die Dicke der Schrift angeben, verwendet werden. Namen der Flaggen sind unten verfügbar.

Flaggen, um Schriftstil anzugeben

Flagge

Beschreibung

FONT_ITALIC

Kursive

FONT_UNDERLINE

Unterstreichen

FONT_STRIKEOUT

Durchstreichen

 

Flaggen, um die Dicke der Schriftart anzugeben

Flagge

FW_DONTCARE

FW_THIN

FW_EXTRALIGHT

FW_ULTRALIGHT

FW_LIGHT

FW_NORMAL

FW_REGULAR

FW_MEDIUM

FW_SEMIBOLD

FW_DEMIBOLD

FW_BOLD

FW_EXTRABOLD

FW_ULTRABOLD

FW_HEAVY

FW_BLACK

 

Beispiel:

#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
 
#define   COORD_X    200
#define   COORD_Y    100
#define   OBJ_NAME   "TestTextGetSizeBitmapLabel"
#define   RES_NAME   "TestTextGetSizeResource"
#define   COLOR_NULL 0x00FFFFFF
//+------------------------------------------------------------------+
//| Skript Programm Start Funktion                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- aktuelle Chart-ID
   long   chart_idChartID();
   
   string font_names[] ={"Arial""Tahoma""Calibri"};
   uint   flags_array[]={0FONT_ITALICFONT_UNDERLINEFONT_STRIKEOUT};
   uint   fw_array[]={FW_DONTCAREFW_THINFW_EXTRALIGHTFW_ULTRALIGHTFW_LIGHT,
                      FW_NORMALFW_REGULARFW_MEDIUMFW_SEMIBOLDFW_DEMIBOLD,
                      FW_BOLDFW_EXTRABOLDFW_ULTRABOLDFW_HEAVYFW_BLACK};
   
//--- Zeichnen aller Attribute des Preis-Chart deaktivieren
   ChartSetInteger(chart_idCHART_SHOWfalse);
   
//--- Deklaration der Parameter der grafischen Ressource
   uint rc_width =(int)ChartGetInteger(chart_idCHART_WIDTH_IN_PIXELS); 
   uint rc_height=(int)ChartGetInteger(chart_idCHART_HEIGHT_IN_PIXELS); 
   uint rc_data[]; 
   uint rc_size=rc_width*rc_height;
  
//--- Erstellen einer grafischen Ressource für die Textausgabe
   if(!CreateResource(chart_idrc_datarc_widthrc_height))
      return;
   
//--- Schleife durch die Namen der Schrifttypen
   for(int i=0i<(int)font_names.Size(); i++)
     {
      //--- Schleife durch die Flags der Schrifttypen
      for(int j=0j<(int)flags_array.Size(); j++)
        {
         //--- Zeichnen des Texts mit dem Schrifttyp und dem Stil, die Sie aus dem Array erhalten haben.
         DrawText(font_names[i], flags_array[j], rc_datarc_widthrc_height);
         Sleep(800);
         ArrayInitialize(rc_dataCOLOR_NULL);
        }
      Sleep(800);
      ArrayInitialize(rc_dataCOLOR_NULL);
     }
   
//--- nachdem alle Texte mit unterschiedlichen Schriftgrößen und -stilen ausgegeben wurden,
//--- zeige den Text mit unterschiedlichen Flags der Schriftbreiten anzeigen
   for(int i=0i<(int)fw_array.Size(); i++)
     {
      //--- Festlegen der Schriftgröße und des Namens für die Anzeige von Text mit den Breiten-Flags
      string font_name="Tahoma";
      int    size=-140;
      TextSetFont(font_namesizefw_array[i]);
      
      //--- Erstellen eines zu zeichnenden Textes, Ausgabe in das Ressourcen-Pixel-Array aus und Aktualisieren der Ressource
      string text=StringFormat("Text%d: Font name: \"%s%s\", size: %d (%d)"i+1font_nameFlagWidthDescription(fw_array[i]), sizesize/-10);
      TextOut(textCOORD_XCOORD_YANCHOR_LEFT_UPPERrc_datarc_widthrc_heightColorToARGB(clrDodgerBlue), COLOR_FORMAT_ARGB_NORMALIZE);
      Update(RES_NAMErc_datarc_widthrc_heighttrue);
      //--- eine Sekunde warten
      Sleep(1000);
      ArrayInitialize(rc_dataCOLOR_NULL);
     }
   
//--- fünf Sekunden warten, dann die Ressource freigeben und das grafische Objekt löschen
   Sleep(5000);
   ResourceFree(RES_NAME);
   ObjectDelete(chart_idOBJ_NAME);
   
//--- Erlaube das Zeichnen beliebiger Attribute des Preis-Charts
   ChartSetInteger(chart_idCHART_SHOWtrue);
   ChartRedraw(chart_id);
   /*
   Als Ergebnis der Skriptausführung werden Textnachrichten auf dem Chart angezeigt.
   Die Texte haben unterschiedliche Schriftarten sowie Stil- und Breiten-Flags
   */ 
  }
//+------------------------------------------------------------------+
//| Zeige fünf Textzeichenfolgen unterschiedlicher                   |
//| Größe mit der angegebenen Schriftart und den angegebenen Flags   |
//+------------------------------------------------------------------+
void DrawText(const string font_nameuint flagsuint &pixels_array[], uint res_widthuint res_height)
  {
//--- Ausgabe von fünf Textzeichenfolgen mit unterschiedlichen Schriftgrößen
   for(int i=0i<5i++)
     {
      //--- Berechnung der Schriftgröße und Festlegung der Schriftart für die Textausgabe mithilfe von Zeichenmethoden
      int size=-140+10*i;
      TextSetFont(font_namesizeflags);
      
      //--- Erstellen eines zu zeichnenden Textes, Ausgabe in das Ressourcen-Pixel-Array aus und Aktualisieren der Ressource
      string text=StringFormat("Text%d: Font name: \"%s%s\", size: %d (%d)"i+1font_nameFlagDescription(flags), sizesize/-10);
      TextOut(textCOORD_XCOORD_Y+22*iANCHOR_LEFT_UPPERpixels_arrayres_widthres_heightColorToARGB(clrDodgerBlue), COLOR_FORMAT_ARGB_NORMALIZE);
      Update(RES_NAMEpixels_arrayres_widthres_heighttrue);
      //--- wart ein Weilchen
      Sleep(800);
     }
  }
//+------------------------------------------------------------------+
//| Eine Beschreibung der Schriftart-Flags zurückgeben               |
//+------------------------------------------------------------------+
string FlagDescription(const uint flag)
  {
   switch(flag)
     {
      case FONT_ITALIC     :  return(" Italic");
      case FONT_UNDERLINE  :  return(" Underline");
      case FONT_STRIKEOUT  :  return(" Strikeout");
     }
   return("");
  }
//+------------------------------------------------------------------+
//| Gibt die Beschreibung der Flags für die Schriftbreite zurück     |
//+------------------------------------------------------------------+
string FlagWidthDescription(const uint flag)
  {
   switch(flag)
     {
      case FW_DONTCARE  :  return(" Egal");
      case FW_THIN : return(" Dünn");
      case FW_EXTRALIGHT:  return(" Extraleicht");
      case FW_ULTRALIGHT:  return(" Ultraleicht");
      case FW_LIGHT     :  return(" Leicht");
      case FW_NORMAL     :  return(" Normal");
      case FW_REGULAR   :  return(" Regulär");
      case FW_MEDIUM    :  return(" Medium");
      case FW_SEMIBOLD  :  return(" Halb fett");
      case FW_DEMIBOLD  :  return(" Demi fett");
      case FW_BOLD      :  return(" Fett");
      case FW_EXTRABOLD :  return(" Extra fett");
      case FW_ULTRABOLD :  return(" Ultra fett");
      case FW_HEAVY     :  return(" Schwer");
      case FW_BLACK     :  return(" Schwarz");
     }
   return("");
  }
//+------------------------------------------------------------------+
//| Grafische Ressource für das gesamte Chart erstellen              |
//+------------------------------------------------------------------+
bool CreateResource(const long chart_iduint &pixel_data[], const uint widthconst uint height)
  {
//--- Festlegen der Größe des Pixelarrays
   ResetLastError(); 
   uint size=width*height;
   if(ArrayResize(pixel_datasize)!=size
     { 
      PrintFormat("%s: ArrayResize() fehlgeschlagen. Error code %d",__FUNCTION__GetLastError()); 
      return(false); 
     } 
//--- Füllen des Pixelarrays mit einer transparenten Farbe und Erstellen einer grafischen Ressource auf der Grundlage dieser Farbe
   ArrayInitialize(pixel_dataCOLOR_NULL); 
   if(!ResourceCreate(RES_NAMEpixel_datawidthheight000COLOR_FORMAT_ARGB_NORMALIZE)) 
     { 
      PrintFormat("%s: ResourceCreate() fehlgeschlagen. Error code ",__FUNCTION__GetLastError()); 
      return(false); 
     } 
  
//--- Erstellen des Grafiklabel-Objekt an den Koordinaten der oberen linken Ecke des Charts.
   if(!ObjectCreate(0OBJ_NAMEOBJ_BITMAP_LABEL000)) 
     { 
      PrintFormat("%s: ObjectCreate() fehlgeschlagen. Error code %d",__FUNCTION__GetLastError()); 
      return(false); 
     } 
//--- die Breite und Höhe des erstellten Bitmap-Objekts auf die Breite und Höhe der grafischen Ressource einstellen.
//--- Setzen des Ankerpunkts des Objekts auf seine Mitte.
   if(!ObjectSetInteger(chart_idOBJ_NAMEOBJPROP_XSIZEwidth))
     {
      PrintFormat("%s: ObjectSetInteger() fehlgeschlagen. Error code %d",__FUNCTION__GetLastError()); 
      return(false); 
     }
   if(!ObjectSetInteger(chart_idOBJ_NAMEOBJPROP_YSIZEheight))
     {
      PrintFormat("%s: ObjectSetInteger() fehlgeschlagen. Error code %d",__FUNCTION__GetLastError()); 
      return(false); 
     }
//--- Angabe der zuvor erstellten grafischen Ressource für das Bitmap-Objekt als Bilddatei
//--- in diesem Fall müssen wir, um den Namen der verwendeten grafischen Ressource anzugeben, "::" vor ihrem Namen hinzufügen
   if(!ObjectSetString(chart_idOBJ_NAMEOBJPROP_BMPFILE"::"+RES_NAME))
     {
      PrintFormat("%s: ObjectSetString() fehlgeschlagen. Error code %d",__FUNCTION__GetLastError()); 
      return(false); 
     }
    
//--- alles in Ordnung
   return(true);
  }
//+------------------------------------------------------------------+ 
//| Grafische Ressourcendaten aktualisieren                          |
//+------------------------------------------------------------------+ 
void Update(const string res_nameconst uint &pixel_data[], const uint widthconst uint heightconst bool redraw
  { 
//--- Verlassen, wenn Dimensionen von 0 übergeben wurden
   if(width==0 || height==0
      return
//--- Ressourcendaten aktualisieren und den Chart neu zeichnen
   if(ResourceCreate(res_namepixel_datawidthheight000COLOR_FORMAT_ARGB_NORMALIZE) && redraw
      ChartRedraw(); 
  } 

Sehen Sie auch

Ressourcen, ResourceCreate(), ResourceSave(), TextOut()