Вверх ↑
Разработчик
Ответов: 26061
Рейтинг: 2120
#1: 2020-12-28 18:49:18 ЛС | профиль | цитата
Netspirit писал(а):
Смахивает на использование знакового 16-битного целого при получении позиции. Нужно беззнаковое 16 или 32-битное.

Да, действительно, предельное значение 32767. Но если используется стандартное сообщение для получения позиции, с wParam и lParam, то как раз там и будет ограничение в 32767 в знаковом или 65535 в беззнаковом.
Но это прикол уже библиотеки. Вот это место
function TControl.GetSelStart: Integer;
var SR: TCharRange;
begin
Result := 0;
if fCommandActions.aGetSelRange <> 0 then
Result := LoWord( Perform( fCommandActions.aGetSelRange, 0, 0 ) )
else
if fCommandActions.aExGetSelRange <> 0 then
begin
Perform( fCommandActions.aExGetSelRange, 0, Integer( @SR ) );
Result := SR.cpMin;
end;
end;
Для multiEdit-a, чем, кстати, и является Memo, применяется именно первая часть условия, вторая же применяется для RichEdit-a.
Тут можно посоветовать только попробовать RichEdit в качестве селектора.
карма: 22

0
Редактировалось 4 раз(а), последний 2020-12-28 19:07:34