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
| Index | Posição UTF-16 com base zero, limitada ao intervalo de 0 ao comprimento atual do valor |
|---|---|
| IndexUnit | Unidade 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