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

IndexNúmero de unidades de seleção completas a saltar desde o início do valor, limitado à última fronteira disponível
IndexUnitUnidade 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