SelectionUTF16ToUnit

Formulários, interação, unicode

Descrição

Converte uma posição UTF-16 com base zero dentro do valor da edição ativa em uma contagem de unidades de seleção completas Com

fsuUTF16CodeUnit

Com fsuUnicodeCodePoint ou fsuGraphemeCluster, a tabela de fronteiras dessa unidade é construída sob demanda e consultada, então uma posição dentro de um par substituto mapeia para o code point que a contém e uma posição dentro de um cluster mapeia para a fronteira do cluster anterior

As tabelas de fronteiras são mantidas em cache para o valor de edição atual e descartadas sempre que esse valor muda

Declaração

function SelectionUTF16ToUnit(Index: Integer;
  IndexUnit: TPDFlibFormSelectionUnit): Integer;

Parâmetros

IndexPosição UTF-16 com base zero, limitada ao intervalo de 0 ao comprimento atual do valor
IndexUnitUnidade de seleção em que o resultado é contado

Valor de retorno

Retorna a quantidade de pontos de código ou clusters de grafema completos que precedem a posição UTF-16, ou o próprio índice limitado para fsuUTF16CodeUnit

Exemplo

// A surrogate pair counts as one code point unit
Session.SetEditValue('A' + WideChar($D83D) + WideChar($DE00) + 'B');
CaretUnits := Session.SelectionUTF16ToUnit(3, fsuUnicodeCodePoint);
// CaretUnits = 2

Consulte também

SelectionUnitToUTF16, GetSelectionRange, SetSelectionRange, TPDFlibFormSelectionUnit, TPDFlibFormSession