Показать сообщение отдельно
  #8  
Старый 28.02.2017, 15:47
Droltromed Droltromed вне форума
Прохожий
 
Регистрация: 22.02.2017
Сообщения: 9
Версия Delphi: Delphi XE10
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Можно ещё при потере/получении фокуса менять цвет выделенного фрагмента текста средствами OleObject as IHTMLDocument посредством тега <span style=...>, попробовал такое, но это оказалось слишком гиморно, бросил

Та же идея. Полдня сегодня потратил на похожий вариант: использовать JavaScript, подменяющий выделенный фрагмент по MouseUp, точнее добавляющий по бокам нужный тег для цвета. Но всплыло сразу несколько проблем:
- выделение нескольких блоков в какой-нибудь таблице не позволит себя отформатировать, потому что внутри будет начало табличных тегов, а замена прошла за его скобками, браузер просто проигнорирует такие левые теги, нарушающие порядок тегов;
- нужно следить за тем, что теги уже были добавлены к выделенному тексту, не добавлять их повторно;
- нужно удалять теги опять же после потери выделения, что вызывает основную головную боль.

Так что да, идея реализовать через форматирование тегами (что JS, что методами TWBrowser) обречена на провал.

Цитата:
Сообщение от Alegun
"прелести" мелкомяконького обозревателя, нужно менять настройки там.

Там тоже не нашёл такой надстройки. Пробовал включать/выключать ускорители или копаться в безопасности. Ничего не помогло. Похоже, Мелкомягкие попросту не подумали об этой детали на этапе архитектуры и теперь её поддержку не могут в него внести.

Всё же в идеале реализовать это нужно через код - будет меньше зависимости от настроек в системе пользователя.
Возможно, стоит подумать в сторону хитростей. Скажем, перевыделять выделенный текст при потере фокуса и как-то его отображать потемнее.
Ответить с цитированием