EnsureSelectionBoundaries

Formulários, interação, Unicode

Descrição

Função interna de TPDFlibFormSession que constrói e coloca em cache as tabelas de limites Unicode do valor de edição atual

Para fsuUnicodeCodePoint, percorre o valor UTF-16 e regista um limite por ponto de código, tratando um par substituto válido como um único ponto de código suplementar e um substituto sem par como um ponto de código isolado

Para fsuGraphemeCluster, constrói limites de clusters de grafemas expandidos, de modo a que sequências combinantes e emoji unidos permaneçam indivisíveis

Cada tabela começa com o limite em zero e guarda desvios UTF-16 de base zero, e uma tabela em cache não vazia é reutilizada até InvalidateSelectionBoundaries a limpar

As tabelas suportam todas as conversões de índice entre unidades de código UTF-16, pontos de código Unicode e clusters de grafemas

Declaração

procedure EnsureSelectionBoundaries(
  IndexUnit: TPDFlibFormSelectionUnit);

Parâmetros

IndexUnitTabela de limites pedida, fsuUnicodeCodePoint ou fsuGraphemeCluster

Exemplo

Session.SetSelectionRange(1, 2, fsuUnicodeCodePoint);
Session.GetSelectionRange(fsuUTF16CodeUnit, Sel);

Consulte também

InvalidateSelectionBoundaries, EnsureVisualCaretOrder, ClampTextLength, SetSelectionRange, GetSelectionRange, TPDFlibFormSelectionUnit, TPDFlibFormSession