SelectionUnitToUTF16
Formulários, interação, Unicode
Descrição
Converte uma contagem de unidades de seleção no índice UTF-16 de base zero do limite correspondente dentro do valor de edição ativa
Com fsuUTF16CodeUnit, a contagem é devolvida inalterada depois de limitada ao comprimento do valor
Com fsuUnicodeCodePoint ou fsuGraphemeCluster, a tabela de limites dessa unidade é construída a pedido e consultada, pelo que o índice devolvido nunca divide um par substituto nem um cluster de grafemas, e uma contagem excessiva limita-se ao limite final
Uma contagem de zero ou menos converte-se sempre no índice zero
Declaração
function SelectionUnitToUTF16(Index: Integer;
IndexUnit: TPDFlibFormSelectionUnit): Integer;
Parâmetros
| Index | Número de unidades de seleção completas a saltar desde o início do valor, limitado à última fronteira disponível |
|---|---|
| IndexUnit | Unidade de seleção em que a contagem é expressa |
Valor devolvido
Devolve o índice UTF-16 da fronteira pedida, o comprimento do valor quando a contagem excede as fronteiras disponíveis, ou zero para contagens de zero ou menos
Exemplo
// Unit 2 starts after the surrogate pair, at UTF-16 index 3
Session.SetEditValue('A' + WideChar($D83D) + WideChar($DE00) + 'B');
CaretUTF16 := Session.SelectionUnitToUTF16(2, fsuUnicodeCodePoint);
// CaretUTF16 = 3
Consulte também
SelectionUTF16ToUnit, SetSelectionRange, GetVisualCaretOrder, TPDFlibFormSelectionUnit, TPDFlibFormSession