SelectionUTF16ToUnit
Formulários, interação, Unicode
Descrição
Converte uma posição UTF-16 de base zero dentro do valor de edição ativa numa contagem de unidades de seleção completas
Com fsuUTF16CodeUnit, o índice é devolvido inalterado depois de limitado
Com fsuUnicodeCodePoint ou fsuGraphemeCluster, a tabela de limites dessa unidade é construída a pedido e pesquisada, pelo que uma posição dentro de um par substituto mapeia para o respetivo ponto de código contentor e uma posição dentro de um cluster mapeia para o limite do cluster precedente
As tabelas de limites são colocadas 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 até ao comprimento atual do valor |
|---|---|
| IndexUnit | Unidade de seleção em que o resultado é contado |
Valor devolvido
Devolve o número de pontos de código ou aglomerados de grafemas 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