Конференция "Основная" » Можно ли от TRichEdit получить событие ... ?
 
  • sniknik © (26.10.15 17:23) [0]
    А вот какое, это еще один вопрос. В принципе нужно типа EM_LINESCROLL, пойдет EM_SCROLLCARET, сложность в том что нужно получать не то, что в самой дельфе посылается, а непосредственно от объекта "изнутри". Желательно.
    Иначе не все перекрывается (вставка текста из внешней проги например).

    Вообще задача - нужно получать текст видимый в данный момент, то что "кадром" не интересует, получить легко, но вот отследить момент когда "кадр" меняется, проблема (ну для меня). Не на таймер же вешать ;(.

    Вообще можно по сумме от клавиш, мыши, прокрутки (WM_VSCROLL) но вот вставка извне не определяется... а бывает ;(.

    Есть что посоветовать?
  • Игорь Шевченко © (27.10.15 17:48) [1]
    А почему бы и не на таймер ?

    Насколько я знаю, все edit-контролы посылают родителям WM_NOTIFY вкупе с EN_CHANGE
    https://msdn.microsoft.com/ru-ru/library/windows/desktop/hh768384(v=vs.85).aspx

    или EN_UPDATE
    https://msdn.microsoft.com/ru-ru/library/windows/desktop/bb761687(v=vs.85).aspx
  • sniknik © (27.10.15 20:08) [2]
    > или EN_UPDATE
    Надо будет попробовать... EN_CHANGE смотрел, не подходит, т.к. к примеру клавиша стрелка вверх/вниз хоть и меняет видимое но не вызывает "CHANGE", и скролинга тоже нет (он только при действиях со скролбаром), а вот "перерисовка себя" в принципе должна делаться.
  • sniknik © (28.10.15 10:33) [3]
    > Надо будет попробовать.
    Работает (главное не забыть установить ENM_UPDATE по "напоминанию" из ссылки), реально вызывается на изменения видимой области, неважно от скрола, клавиш или, как тут наткнулся, от перетаскивания текста драг&дропом из браузера (что чуть не стало проблемой... т.к. не отслеживается кроме как на onChange текста, что привело бы к усложнению других обработок).
    Т.е. как раз то что нужно. Спасибо.
  • Игорь Шевченко © (28.10.15 11:11) [4]
    Отлично. Я, соответственно, твой опыт тоже к себе в копилку заберу, так что тоже спасибо. Удачи!
 
Конференция "Основная" » Можно ли от TRichEdit получить событие ... ?
Есть новые Нет новых   [118693   +27][b:0][p:0]