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;
Тут можно посоветовать только попробовать RichEdit в качестве селектора.