Szöveg a panel középére 2016-05-30T16:09:52+00:00

Címkézve: 

2 bejegyzés megtekintése - 1-2 / 2
  • Szerző
    Bejegyzés
  • mpeter
    Tag
    Bejegyzések száma: 38

    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 );
    }
    
    Radulovic Attila
    Tag
    Bejegyzések száma: 644

    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 );
    
2 bejegyzés megtekintése - 1-2 / 2

A hozzászóláshoz jelentkezz be!

Adhatok Neked még több ingyenes tartalmat?

Értesítelek hetente megjelenő új tartalmaimról.