Для выделения слова в тексте окна RichEdit можно использовать сообщение EM_FIND WORDBRE АК:

EM_FINDWORDBREAK, (UINT) code, (DWORD) ichStart

Сообщение относится к окнам редактирования RichEdit. Оно объявлено в модуле RichEdit, так что для его использования в приложение должен быть включен оператор

uses RichEdit;

Сообщение ищет разделитель, ближайший к заданной позиции ichStart. Параметр code определяет режим поиска и может, в частности, принимать следующие значения, использованные в приведенных далее примерах:

WB_

CLASSIFY

Возвращает класс и флаги символа, следующего за

указанной позицией.

WB_

JSDELIMITER

Возвращает true (ненулевое значение), если символ,

следующий за указанной позицией, пробел (табуля-

ция и переход на новую строку пробелом не счита-

ются). В противном случае возвращает 0.

WB_

LEFT

Если позиция ichStart внутри слова, то возвращает-

ся индекс последнего пробельного символа перед

первым символом этого слова. Под словом понимает-

ся неразрывная последовательность символов, вклю-

чая точки и иные небуквенные символы. Если же

позиция ichStart расположена между словами, то

находится последний символ предыдущего слова.

WB.

.LEFTBREAK

Возвращается индекс последнего символа предыду-

щего слова. Под словом понимается неразрывная по-

следовательность символов, включая точки и иные

небуквенные символы.

WB.

JMOVEWORDLEFT

Это то, что используется в Windows как реакция на

клавиши Ctrl-Left. Возвращается индекс последнего

разделителя перед первым символом данной (если

позиция ichStart внутри слова) или предыдущей

(если позиция ichStart между словами) алфавит-

но-числовой последовательности. Разделителями ал-

фавитно-числовых последовательностей считаются

любые символы, не относящиеся к множеству букв

и цифр. Отличие от WB_LEFT заключается, в част-

ности, в том, что при WBJVIOVEWORDLEFT разде-

лителями считаются любые символы, не относящие-

ся к множеству букв и цифр.

WB.

_MOVEWORDRIGHT

Это то, что используется в Windows как реакция на

клавиши Ctrl-Right. Возвращается индекс перед пер-

вым символом следующей алфавитно-числовой по-

следовательности. Разделителями алфавитно-число-

вых последовательностей считаются любые символы,

не относящиеся к множеству букв и цифр. В этом

отличие от WB_RIGHT - там разделителями счита-

ются только пробельные символы.

\УВ_КГСНТ

Возвращается индекс последнего пробельного символа

перед первым символом следующего слова. Под сло-

вом понимается неразрывная последовательность сим-

волов, включая точки и иные небуквенные символы.

\УВ_КЮНТВКЕАК

Возвращается индекс последнего символа слова, если

позиция иЖ81аг! внутри слова, или индекс последнего

пробельного символа перед первым символом следую-

щего слова (если позиция деЬЗДаН; между словами).

При значении code = WB_CLASSIFY сообщение возвращает класс символа, который используется в Windows при решении вопросов, связанных с переходом на следующую строку. Класс может быть сочетанием следующих флагов:

WBF_

_BREAKAFTER

Следующий символ - знак переноса

WBF_

_BREAKLINE

Следующий символ - пробел. Табуляция и переход на новую строку пробелом не считаются.

WBF_

JSWHITE

Следующий символ пробельный.

Рассмотрим примеры выделения слов. Если вы хотите выделить прилегающую к позиции ind алфавитно-числовую последовательность (т.е. последовательность символов, ограниченную пробельными или небуквенными и нецифровыми символами), это можно сделать следующими операторами:


|Следующая страница ⇒

Приемы программирования в Delphi на основе VCL



Новости за месяц

  • Июнь
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31