Вверх ↑
Ответов: 4612
Рейтинг: 746
#1: 2020-08-31 11:37:56 ЛС | профиль | цитата
3042 писал(а):
Теперь вопрос: что с этим делать?
Я пытался разобраться. Поскольку для всех типов контролов в KOL используется одна и та же функция - невозможно корректно это реализовать. Поскольку для разных контролов Windows методы получения текста отличаются. Более того, они могут отличаться в разных версиях RichEdit. Пришел к выводу: в функции TControl.GetItems() надо проверять тип Self и для RichEdit вызывать один код, для остальных - другой. Но пока не смог реализовать - не нашел признака, по которому можно идентифицировать.
3042 писал(а):
Почему там первое слово установлено в L+1, а не L+4, мне неясно
Там, похоже, есть костыли когда пытались одним и тем же кодом получить текст из разных контролов. Благодаря этому +1 в одном из случаев возвращаемый текст захватывает "половинку" из перевода строки #13#10. А без него - в другом случае, вероятно, не добирает один символ. Кроме того, "не L+4" потому что, возможно, в одном случае оно "с учетом terminating null / перевода строки", а в других без. Потому лишали запас.
3042 писал(а):
У кого-то новая версия KOL, там есть та же ошибка?
Да, причем ещё, вроде, появились отличия в Unicode версии RichEdit (или в другой версии). Кроме Кладова там и в Майкрософт те ещё индусы работают.
карма: 26

0
Редактировалось 3 раз(а), последний 2020-08-31 11:41:42