#powerbuilder #rte
#powerbuilder #rte
Вопрос:
У меня есть строка LS_STRING, которая содержит агрегированный код, который я хочу отобразить в элементе управления форматированным текстом.
string ls_string = "abc123"
rte_display.clear() // to clear any previous text...
rte_display.pasteRTF(ls_string) // to copy whatever my variable contains into the RTE...
rte_display.setredraw (true) // to refresh the view of the control...
Когда я компилирую код, он не выдает никаких ошибок, но также не дает ожидаемых результатов. Есть какие-либо подсказки о том, как это сделать? Спасибо!
Редактировать:
Сделал, как было предложено, но получил тот же результат: значение переменной не вставляется в элемент управления RTE…
long ll_number
string ls_number
if isnumber(sle_test.text) then
ll_number = long(sle_test.text)
ls_number = string(ll_number, "00000000")
MESSAGEBOX("VALUE", LS_NUMBER)
rte_test.setredraw (false)
rte_test.selecttextall()
rte_test.clear()
rte_test.pastertf(ls_number)
rte_test.setredraw (true)
end if
Комментарии:
1. Версия PowerBuilder? Управление форматированным текстом менялось несколько раз.
Ответ №1:
Согласно документации, сначала убедитесь, что для вашего свойства DisplayOnly установлено значение false .
https://docs.appeon.com/pb2019r2/application_techniques/ch16s03.html#d0e11604
string ls_richtext = anyRichText
// Prevent flicker
rte_1.SetRedraw(FALSE)
// Replace the old text with text for the current row
rte_1.SelectTextAll()
rte_1.Clear()
rte_1.PasteRTF(ls_richtext)
rte_1.SetRedraw(TRUE)
Если это не работает, возможно, нужно просмотреть ваш форматированный текст?