Содержание материала

 Иногда бывает необходимо полудить только часть текста из RichEdit не выделяя его, то есть не используя свойство SelText. Ниже представлен код, который позволяет сделать это.

Code:

{Переопределяем неправильное объявление TTextRange в RichEdit.pas}

TTextRange = record

                chrg: TCharRange;

                lpstrText: PAnsiChar;

              end;

 

 

function REGetTextRange(RichEdit: TRichEdit;

                       BeginPos, MaxLength: Integer): string;

{RichEdit - RichEdit control

BeginPos - абсолютное значение первого символа

MaxLength - максимально число получаемых символов}

var

TextRange: TTextRange;

begin

if MaxLength>0 then

begin

    SetLength(Result, MaxLength);

    with TextRange do

    begin

      chrg.cpMin := BeginPos;

      chrg.cpMax := BeginPos+MaxLength;

      lpstrText := PChar(Result);

    end;

    SetLength(Result, SendMessage(RichEdit.Handle, EM_GETTEXTRANGE, 0,

              longint(@TextRange)));

end

  else Result:='';

end;

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить