Компонент GsvUnicodeRichEdit

Последнее обновление: 23 июля 2006

Этот визульный компонент является объектной оболочкой для юникодной версии редактора RichEdit - riched20.dll. Компонент наследуется от TWinControl и определяет следующие свойства, обработчика и методы:

Alignment: TAlignment
Стиль выравнивания текста.
AutoSelect: Boolean
Флаг, разрешающий выбор всего содержимого поля редактирования по получении фокуса. Обычно используется вместе со стилем однострочного редактора.
AutoSize: Boolean
Флаг, разрешающий автоматическую установку вертикального размера поля редактирования в соответствии с размером шрифта, используется только вместе со стилем однострочного редактора.
AutoURLDetect: Boolean
Флаг, разрешающий обнаружение URL (http:, mailto: и т.д.) в редактируемом тексте.
BorderStyle: TBorderStyle
Вид рамки.
HideScrollBars: Boolean
Флаг, разрешающий автоматически скрывать полоски скроллинга при их ненужности.
HideSelection: Boolean
Флаг, управляющий подсветкой выделения текста при потере фокуса.
MaxLength: Integer
Максимальный размер текста, который может быть введен в поле редактирования или 0, если размер не ограничен.
MaxUndo: Integer
Максимальный размер буфера Undo-Redo, по умолчанию - 100.
MultiLine: Boolean
Выбор многострочного или однострочного поля редактирования.
ReadOnly: Boolean
Разрешение или запрет редактирования.
PlainText: Boolean
Выбор простого или форматированного текста.
SelectionBar: Boolean
Флаг, разрешающий узкую полоску выделения строки слева от поля редактирования.
WantReturns: Boolean
Флаг, разрешающий иcпользование клавиши Enter при редактировании.
WantTabs: Boolean
Флаг, разрешающий иcпользование клавиши Tab при редактировании.
WordWrap: Boolean
Флаг, разрешающий автоматическое выравнивание многострочного текста по ширине клиентской области.
OnChange: TNotifyEvent
Обработчик события, происходящего при любом изменении текста.
OnHScroll, OnVScroll: TNotifyEvent
Обработчик события, происходящего при горизонтальном или вертикальном скроллинге.
OnLink: TGsvUnicodeRichEditLinkEvent
Обработчик события, происходящего при выделении текста, отмеченного как ссылка.
OnProtectChange: TGsvUnicodeRichEditProtectChange
Обработчик события, происходящего при изменении способа защиты фрагмента текста.
OnSelChange: TNotifyEvent
Обработчик события, происходящего при изменении выделенного текста.
OnLangChange: TGsvUnicodeRichEditLangChange
Обработчик события, происходящего при изменении системного переключателя языка.
procedure SetSelPositions(aStartPos, aEndPos: Integer)
Public-процедура, устанавливающая позицию и размер выделенного текста как одну операцию.
procedure EnsureSelVisible
Public-процедура, передвигающая выделенный текст так, чтобы он стал видимым.
function PositionByPoint(X, Y: Integer): Integer
Public-функция, позволяющая определить позицию текста по координатам клиентской области.
function PointByPosition(aPosition: Integer): TPoint
Public-функция, обратная к предыдущей и позволяющая определить координаты точки клиентской области, соответствующие позиции в тексте.
function PositionByLine(aLine: Integer): Integer
Public-функция, позволяющая определить позицию текста по номеру строки.
function LineByPosition(aPosition: Integer): Integer
Public-функция, обратная к предыдущей и позволяющая определить номер строки по позиции в тексте.
function WordRangeByPosition(aPosition: Integer): TCharRange
Public-функция, позволяющая определить диапазон позиций блишайшего слова по позиции текста внутри слова.
function WideWordByPosition(var aPosition: Integer): WideString
Public-функция, возвращающая ближайшее слово по позиции в тексте.
function GetWideTextRange(const aRange: TCharRange): WideString
Public-функция, возвращающая текст в указанном диапазоне позиций.
function FindWideText(...): Integer
Public-функция поиска текста. Аргументы функции: const SearchStr: WideString; StartPos, EndPos: Integer; Options: TGsvUnicodeSearchTypes.
procedure SaveToFile, LoadFromFile
Public-процедуры для сохранения текста в файле и для загрузки текста из файла.
function TextLength: Integer
Функция возвращает длину всего текста.
function LineCount: Integer
Функция возвращает число строк в тексте.
function FirstVisibleLine: Integer
Функция возвращает номер первой видимой строки.
function CanUndo: Boolean
Функция возвращает признак возможности операции отката.
function HasSelection: Boolean
Функция возвращает признак наличия выделенного текста.
function HasText: Boolean
Функция возвращает признак наличия текста в поле редактирования.
procedure Clear
Удаление всего текста.
Работа с буфером обмена и выделенным текстом
Стандартные процедуры: CopyToClipboard, CutToClipboard, PasteFromClipboard, ClearSelection, SelectAll.
procedure Undo
Команда отката последней операции редактирования.
procedure ClearUndo
Очистка буфера отката.
function CreateCharFormat
Функция возвращает объект, который может быть использован для форматирования отдельных символов на основе выбранных признаков - маски и эффектов. С помощью маски выбираются признаки форматирования: cfmBackColor, cfmCharset, cfmColor, cfmFace, cfmLCID, cfmOffset, cfmSize, cfmUnderlineType, cfmWeight. С помощью эффектов можно воздействовать на такие атрибуты форматирования, как:cfeBold, cfeDisabled, cfeEmboss, cfeHidden, cfeImprint, cfeItalic, cfeOutline, cfeProtected, cfeShadow, cfeSmallCaps, cfeStrikeout, cfeSubscript, cfeSuperscript, cfeUnderline. Наличие маски и эффектов просто ограничивает область возможных изменений для увеличения скорости установки этих изменений. Реальное изменение производится изменением свойств объекта, который возвращает данная функция. Объект имеет следующие свойства, доступные для получения и установки: Bold, Disabled, Emboss, Hidden, Imprint, Italic, Outline, CProtected, Shadow, SmallCaps, Strikeout, Subscript, Superscript, Underline, Face, WideFace, Size, Height, Color, BackColor, Charset, CLCID, Pitch, Offset, Weight, UnderlineType. После установки всех нужных свойств вы можете использовать один из двух методов объекта: SetDefault или SetSelection для установки текущих параметров форматирования или параметров форматирования выделенного текста. Для заполнения свойств объекта имеются две процедуры, которые получают все свойства, заявленные в маске и эффектах функции TGsvUnicodeCharFormat: GetDefault и GetSelection. После того, как объект становится ненужным, его можно удалить.
function CreateParaFormat
Функция подобна предыдущей, но возвращает объект, который может быть использован для форматирования абзацев, а не отдельных символов. С помощью маски выбираются признаки форматирования: pfmAlignment, pfmOffset, pfmRightIndent, pfmStartIndent, pfmTabStops. Возвращаемый объект имеет свойства: Alignment, StartIndent, RightIndent, Offset. После установки значений свойств они передаются в поле редактирования с помощью процедуры SetFormat.
Modified: Boolean
Свойство позволяет получить или установить признак измененности текста.
SelLength, SelStart: Integer
Свойство позволяет получить или установить длину и позицию выделенного текста.
SelRange: TCharRange
Свойство позволяет получить или установить длину и позицию выделенного текста за одну операцию.
SelWideText: WideString
Свойство позволяет получить выделенный текст. Установка выделенного текста либо заменяет текущий выделенный текст, либо добавляет его от текущей позиции.
SelWideChar: WideChar
Свойство аналогично предыдущему, но работает с одним символом.
WideText: WideString
Свойство позволяет получить или установить весь текст.
CaretPos: TPoint
Свойство позволяет получить или установить позицию курсора в клиентских координатах.
WordBreakProc: PGsvUnicodeEditWordBreakProc
Свойство позволяет получить или установить специфическую функцию разбивки текста по словам.
WideChars[aPosition: Integer]: WideChar
Свойство позволяет получить символ по его позиции.
WideLines[aIndex: Integer]: WideString
Свойство позволяет получить строку по ее номеру.

Download

Downloaddelphiunicoderichedit.zip - Исходные коды (13K).