Форум: "KOL";
Текущий архив: 2008.01.20;
Скачать: [xml.tar.bz2];
ВнизВзять Items[i] как из RichEdit RTF-строку Найти похожие ветки
← →
=BuckLr= (2007-06-22 13:08) [0]Задача - взять целую строку из RichEdit в формате Rich Text, но НЕ используя выделение при помощи SelStart-SelLength + RE_Text[reRTF, True] и иже с ними...
Что подскажете? Может, есть какие-то АПИ для этого?
← →
Vladimir Kladov (2007-06-22 17:22) [1]Нет, выделение это и есть стандартный способ. Если выделение устанавливать временно, а затем восстанавливать, то никто ничего и не заметит. На случай длинных операций есть beginupdate/endupdate.
← →
=BuckLr= (2007-06-22 20:36) [2]
> никто ничего и не заметит
да, я так и делаю. Правда, скроллинг всё равно уходит не туда, где был, но это мелочь... В общем, думал, что есть какой-то магический способ :)
← →
Vladimir Kladov (2007-06-22 20:41) [3]Вроде не должен уходить, с чего бы это. Если не использовать EM_SCROLL, EM_SCROLLCARET, то не должен только при изменении выделения.
← →
=BuckLr= (2007-06-22 22:50) [4]
> Вроде не должен уходить, с чего бы это
с того, что мне приходится менять положение каретки - при таком подходе это обязательно. Ну да ладно, проблему решим.
← →
Vladimir Kladov (2007-06-23 09:15) [5]Да, действительно ускакивает куда попало. Чтобы восстановить хотя бы приблизительно в ту же позицию, надо EM_CHARFROMPOS, 0, 0 - запомнить позицию символа, ближайшего к верхнему левому углу, а по окончании операции целый цикл организовывать, чтобы вернуть изображение туда же.
← →
=BuckLr= (2007-06-23 10:23) [6]
> Да, действительно ускакивает куда попало
:) а я думал, что от моих манипуляций (у меня там курсор по всму экрану ездит) :)
> по окончании операции целый цикл организовывать, чтобы
> вернуть изображение туда же
А по-моему, проще будет поставить туда курсор и что-то типа EM_SCROLLCARET. Или SetScrollPos, только я не знаю, как оно работает, не сталкивался.
← →
Vladimir Kladov (2007-06-23 11:23) [7]Я попробовал сделать тройку методов. Сейчас положу, посмотрите. В richedit после скролла вертикального (за тумбу на скролле мышкой) верхняя строка может отображаться частично. Восстановление приводит к небольшому спрыгу, чтобы показывалась целая (следующая) строка. Кроме того, в RichEdit не удается восстановить горизонтальную позицию скролла, в нем EM_LINESCROLL не работает для горизонтальной прокрутки. И ничего вообще нет для горизонтальной прокуртки, кроме EM_SCROLLCARET, а это все равно прыг. Попытка обратиться к непосредственно прокруткам контрола для RichEdit тоже ничего не дает: прокрутки позицию меняют, но это не влияет на сам RichEdit.
← →
Vladimir Kladov (2007-06-23 11:29) [8]Вот, нашел: EM_GETSCROLLPOS and EM_SETSCROLLPOS. Начиная с RichEdit3.0 вроде бы. Сейчас попробую с ними.
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2008.01.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 1.233 c