Заполняет ValuedText переданными в textValues значениями.
В первую очередь в textValues ищется поле format:
Если format это ValuedText, то будет скопирована его структура (но не значения!)
Если format это string/WString содержащий валидный XHTML-текст, то он будет распарсен в ValuedText
Если format это string/WString НЕ содержащий валидный XHTML-текст, то он будет установлен как PlainText
Во всех остальных случаях формат текста не изменится
Далее выполняется обход всех string-ключей в таблице textValues (кроме format)
Если значение имеет тип string - неявно выполняется SetClassVal( key, value )
Если значение имеет тип int - неявно выполняется SetVal( key, IntWs( value ) )
Если значение имеет тип float - неявно выполняется SetVal( key, FloatWs( value ) )
Если значение имеет тип WString/ValuedText/ValuedObject - неявно выполняется SetVal( key, value )
Если значение имеет тип table - неявно выполняется SetVal( key, CreateVt( value ) )
Во всех остальных случаях значение игнорируется
В случае если какое либо значение не удалось подставить (например из-за отсутствия соответствующего ключа в ValuedText), то оно будет проигнорировано.
'''Во всех случаях когда одновременно подставляется 3 и более значений настоятельно рекомендуется использовать данную API и выполнять подстановку за один вызов.'''
'''Изменение формата в существующем непустом ValuedText или виджете содержащем ValuedText не рекомендуется'''
-- класс
ValuedText
-- семантика
function SetTextValues( self, textValues )
-- параметры
textValues: table - таблица подставляемых значений
-- возвращаемые значения:
нет
-- примеры:
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
}
VT:SetTextValues( tab2 )
-- LogInfo( VT )
-- ValuedText: [[<html>aa2 <r name="obj21"><html>cc2 <r name="obj22"><html>ee2 <r name="obj23"></r> ff2 </html></r> dd2 </html></r> bb2 </html>]]
-- LogInfo( VT:ToWString() )
-- WString: [[aa2 cc2 ee2 ff2 dd2 bb2 ]]