Этот метод был перенесён из скрипта в код для оптимизации.
Объект object может быть ValuedText, WidgetTextView или WidgetButton. Для работы используется либо переданный ValuedText, либо ValuedText соответствующего виджета.
В таблице textValues ищется поле format и используется в качестве форматирующего текста для ValuedText. Затем все остальные пары <key-value> в таблице подставляются в ValuedText с помощью SetVal( self, key, value ) или SetVal( self, key, value ), если значение value типа string.
Если какое-либо значение value представляет собой таблицу, то считается, что в ней хранится информация для формирования нового ValuedText с помощью этого-же метода common.SetTextValues( object, textValues ). В качестве object для этого метода используется новый ValuedText.
-- библиотека:
сommon
-- объявление:
function SetTextValues( object, textValues )
-- параметры:
object: ValuedText, ButtonSafe или TextViewSafe - объект для установки текстовых переменных
textValues: table - таблица с именованными полями переменных для подстановки в текст пары название поля - имя тэга <r/> в тексте, значение поля - новое текст для подстановки в соответствующий тэг. В качестве форматирующего текста используется поле format
-- возвращаемые значения:
нет
-- примеры:
local tab1 = {
format = debugCommon.ToWString( [[<html>aa1 <r name="obj11"/> bb1 </html>]] ),
obj11 = debugCommon.ToWString( [[<html>cc1 <r name="obj12"/> dd1 </html>]] ),
obj12 = debugCommon.ToWString( [[<html>ee1 <r name="obj13"/> ff1 </html>]] ),
obj13 = debugCommon.ToWString( [[gg1]] )
}
local tab2 = {
format = debugCommon.ToWString( [[<html>aa2 <r name="obj21"/> bb2 </html>]] ),
obj21 = debugCommon.ToWString( [[<html>cc2 <r name="obj22"/> dd2 </html>]] ),
obj22 = debugCommon.ToWString( [[<html>ee2 <r name="obj23"/> ff2 </html>]] ),
obj23 = tab1
}
local vt = common.CreateValuedText()
common.SetTextValues( vt, tab2 )