|
<< Нажмите, чтобы показать Содержание >> Функции из модуля RVLinear |
Модуль [VCL / FMX] RVLinear / fmxRVLinear.
const
RVCharsPerLineBreak: Integer = 2;
RVNonTextCharacter: TRVUnicodeChar = ' ';
function RVGetLinearCaretPos(rve: TCustomRichViewEdit;
CharsPerLineBreak: Integer = -1): Integer;
procedure RVSetLinearCaretPos(rve: TCustomRichViewEdit;
LinearPos: Integer; CharsPerLineBreak: Integer = -1);
RVGetLinearCaretPos возвращает позицию каретки в виде количества символов перед ней. Нетекстовые объекты, кроме таблиц, считаются одним символом, а разрывы строк – CharsPerLineBreak символами.
RVSetLinearCaretPos перемещает каретку в указанную позицию.
Значение параметра CharsPerLineBreak |
Описание |
|---|---|
2 |
Использовать #13#10 для разделения строк |
1 |
Использовать #13 для разделения строк |
0 |
Строки не разделяются |
-1 |
Использовать значение глобальной переменной RVCharsPerLineBreak (которая, с свою очередь, может быть равна 2, 1 или 0) |
procedure RVGetSelection(rv: TCustomRichView;
out SelStart, SelLength: Integer;
CharsPerLineBreak: Integer = -1);
procedure RVSetSelection(rv: TCustomRichView;
SelStart, SelLength: Integer;
CharsPerLineBreak: Integer = -1);
RVGetSelection возвращает позицию выделения в параметрах, аналогичных Memo / RichEdit (SelStart и SelLength).
RVSetSelection устанавливает выделение с помощью этих значений.
type
TRVSelection = record
SelStart, SelLength: Integer;
MultiCell: Boolean;
StartRow, StartCol, RowOffs, ColOffs: Integer;
end;
procedure RVGetSelectionEx(rv: TCustomRichView;
out Selection: TRVSelection;
CharsPerLineBreak: Integer = -1);
procedure RVSetSelectionEx(rv: TCustomRichView;
const Selection: TRVSelection;
CharsPerLineBreak: Integer = -1);
RVGetSelectionEx возвращает позицию выделения в записи типа TRVSelection.
RVSetSelectionEx устанавливает выделение с помощью этой записи.
Эти функции поддерживают не только обычное выделение, но и выделение нескольких ячеек в таблицах.
function RichViewToLinear(rv: TCustomRichView;
CurRVData, RVData: TCustomRVData;
ItemNo, ItemOffs: Integer; out LinearPos: Integer;
CharsPerLineBreak: Integer = -1): Boolean;
function LinearToRichView(rv: TCustomRichView;
CurRVData: TCustomRVData;
var LinearPos: Integer; out RVData: TCustomRVData;
out ItemNo, ItemOffs: Integer;
CharsPerLineBreak: Integer = -1): Boolean;
RichViewToLinear преобразует позицию, заданную в параметрах ТРВ-Редактора (RVData – документ, ItemNo – номер элемента в этом документе, ItemOffs – смещение внутри этого элемента), в линейную координату – количество символов от начала CurRVData до этой позиции.
Нетекстовые объекты, кроме таблиц, считаются одним символом, а разрывы строк – CharsPerLineBreak символами.
LinearToRichView выполняет обратное преобразование.
function RVGetTextRange(rv: TCustomRichView;
RangeStart, RangeLength: Integer;
CharsPerLineBreak: Integer = -1): TRVUnicodeString;
function RVGetTextLength(rv: TCustomRichView;
CharsPerLineBreak: Integer = -1): Integer;
RVGetTextRange возвращает текст из rv, начиная с позиции RangeStart, длиной RangeLength.
Нетекстовые элементы, кроме таблиц и табуляций, возвращаются как RVNonTextCharacter. Об обработке разрывов строк см. таблицу о CharsPerLineBreak выше.
Вызов RVGetTextRange(rv, 0, RVGetTextLength(rv)) возвращает весь текст.
Все эти функции совместимы между собой и одинаково вычисляют позиции при условии, что используется одно и то же значение CharsPerLineBreak.
Текст, возвращаемый RVGetTextRange, имеет взаимно однозначное соответствие с документом TRichView, в отличие от текста, возвращаемого функциями из модуля RVGetText.