Radu.hu › Fórum › Kérdések az MQL4 programozási nyelvvel kapcsolatban › Szöveg a panel középére
Címkézve: OBJ_LABEL
2 bejegyzés megtekintése - 1-2 / 2
- SzerzőBejegyzés
-
Szia Radu!
Baloldalon egy info panelen jelenítek meg szövegeket LABEL objektumokkal. Van néhány, amit középre akarok igazítani. Az ALIGN_CENTER csak EDIT objektumon működik. Ezért próbáltam a TextGetSize függvénnyel lekérdezni a szöveg szélességét, és ezt felhasználva beállítani az OBJPROP_XDISTANCE értéket. Ha kódban lévő w és h értékeket kiíratom, kisebbek mint a képernyőn megjelenő szöveg pixelben.
void CreateLabel( string _name, int _x, int _y, string _text ) { uint w = 0, h; TextSetFont( "Arial", 12 ); TextGetSize( _text, w, h ); ObjectCreate( 0, _name, OBJ_LABEL, 0, 0, 0 ); ObjectSetInteger( 0, _name, OBJPROP_CORNER, CORNER_RIGHT_UPPER ); ObjectSetString( 0, _name, OBJPROP_FONT, "Arial" ); ObjectSetInteger( 0, _name, OBJPROP_FONTSIZE, 12 ); ObjectSetInteger( 0, _name, OBJPROP_COLOR, clrWhite ); ObjectSetInteger( 0, _name, OBJPROP_YDISTANCE, _y ); ObjectSetInteger( 0, _name, OBJPROP_XDISTANCE, _x - ( 300 - w ) / 2 ); ObjectSetString( 0, _name, OBJPROP_TEXT, _text ); }
A “Notes” (Megjegyzések) részben leírtak szerint -10 -zel kell szoroznod a méretet akkor, ha OBJ_LABEL -t akarsz vele mérni. Tehát ne 12-t adj meg fontméretnek, hanem -120 -at, így kijön majd a helyes érték.
TextSetFont( "Arial", -120 ); TextGetSize( _text, w, h );
- SzerzőBejegyzés
2 bejegyzés megtekintése - 1-2 / 2
- Be kell jelentkezni a hozzászóláshoz.