Перейти к содержимому


Фотография

RscStructuredText и его атрибуты


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 OFFLINE   nIkRon

nIkRon

    Сержант

  • Пользователи
  • 195 сообщений
  • Откуда:Донецк

Отправлено 24 June 2019 - 17:00

Здравствуйте, сделал RscStructuredText с атрибутами:

class Attributes
{
	font = "RobotoCondensedLight";
	color = "#ffffff";
	colorLink = "#D09B43";
	align = "center";
	valign = "middle";
	shadow = 0;
};

Но проблема в том, что valign не работает, текст по центру, но сверху, хотя должен быть по центру контрола на сколько я понимаю.

Но если устанавливать текст таким образом:
 

"<t size='3'><t size='1' valign='top' align='right'>Top Right</t> <t size='1' valign='middle' align='center'>Middle Center</t> <t size='1' valign='bottom' align='left'>Bottom Left</t></t>"

То все на своих местах, но если убрать между ними пробелы, то опять же все сверху.
Исходя из информации: 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

Пробелы нужны для хинта, так как он изменяет свои размеры в зависимости от текста, но у меня контрол имеет свои размеры, ему ведь это не нужно по идее.

В чем суть задумки: Сделать окно с текстом, которое будет по центру. Если использовать обычный RscText со 2-м стилем, то он не создает новые линии, он весь текст загоняет в одну строку, и если текст большой, он выходит по бокам.


  • 0

#2 OFFLINE   nIkRon

nIkRon

    Сержант

  • Пользователи
  • 195 сообщений
  • Откуда:Донецк

Отправлено 24 June 2019 - 21:04

Судя по всему valign работает только в среде которую занимает текст, исходя из этого мне не понятно зачем он вообще нужен, если align может сделать тоже самое. 


  • 0

#3 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 24 June 2019 - 21:25

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

или используйте уже настроенный RscTextMulti в качестве предка для вашего контрола

Сделать окно с текстом, которое будет по центру.

1. Создаете простой контрол с выравниванием по центру (По горизонтали) с фиксированной шириной
2. Заполняете его текстом
3. Используйте

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

и

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

для того что бы "исправить" высоту контрола и его позицию

Сообщение отредактировал vlad333000: 24 June 2019 - 21:26

  • 0

#4 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 24 June 2019 - 21:36

Вот простой пример. Просто вставляете в дебаг консоль в редакторе, смотрите и крутите:
with uiNamespace do {
    private _text = [];

    for "_i" from 0 to 500 do {
        _text pushBack ("0123456789" select [_i % 10, 1]);
    };

    _text = _text joinString "";

    display1 = findDisplay 46 createDisplay "RscDisplayEmpty";

    ctrl1 = display1 ctrlCreate ["RscTextMulti", -1];
    ctrl1 ctrlSetPosition [0.4, 0.5, 0.1, 0.2];
    ctrl1 ctrlSetText _text;
    ctrl1 ctrlCommit 0;
    ctrl1 ctrlSetPosition [0.5 - (ctrlTextWidth ctrl1 / 2), 0.5 - (ctrlTextHeight ctrl1 / 2), ctrlTextWidth ctrl1, ctrlTextHeight ctrl1];
    ctrl1 ctrlCommit 0;
};

Сообщение отредактировал vlad333000: 24 June 2019 - 21:42

  • 0

#5 OFFLINE   nIkRon

nIkRon

    Сержант

  • Пользователи
  • 195 сообщений
  • Откуда:Донецк

Отправлено 24 June 2019 - 21:49

1. Создаете простой контрол с выравниванием по центру (По горизонтали) с фиксированной шириной

2. Заполняете его текстом
3. Используйте

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

и

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

для того что бы "исправить" высоту контрола и его позицию

 

Так и сделал, только использовал RscStructuredText с align="center";


Сообщение отредактировал nIkRon: 24 June 2019 - 21:50

  • 0




Яндекс.Метрика