Столкнулся с тем, что свойство WordWrap у некоторых компонентов UniGUI не всегда работало корректно и задал вопрос на эту тему на официальном форуме.
Универсальное решение
Было предложено участником официального форума DD и получилось таким для компонента UniHTMLMemo>ClientEvents>UniEvents
UniHTMLMemo -> ClientEvents -> UniEvents …
1 2 3 4 5 6 7 8 9 10 |
function beforeInit(sender, config) { sender.listeners = { initialize: function(editor) { var styles = { "word-wrap": "break-word" }; Ext.DomHelper.applyStyles(editor.getEditorBody(), styles); } } } |
Частное решение (в TRichView)
Я столкнулся с этой проблемой в контексте трансляции контента из TRichView в UniGUI через БД. В TRichView есть одно замечательное событие MyRichViewSaveParaToHTML.
С помощью него можно каждый параграф обернуть в блок div, у которого в качестве атрибута стиля указать word-wrap:break-word, то есть таким образом
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
//------------------------Добавляем переносы слов в браузере procedure TMainForm.MyRichViewSaveParaToHTML(Sender: TCustomRichView; RVData: TCustomRVData; ItemNo: Integer; ParaStart, CSSVersion: Boolean; var HTMLCode: String); begin // Оборачиваем каждый параграф в div c переносами if ParaStart then HTMLCode := '<div style="word-wrap: break-word;">' else HTMLCode := '<div>' end; |
Ну и в FormCreate присвоить этот обработчик
1 2 3 4 5 6 7 8 9 |
procedure TMainForm.FormCreate(Sender: TObject); begin ReportMemoryLeaksOnShutdown:=true; RichViewEdit1.OnSaveParaToHTML:=MyRichViewSaveParaToHTML; end; |