GetVisualCaretOrder
Formulários, interação, Unicode
Descrição
Retorna cada posição do cursor para a edição ativa em ordem física da esquerda para a direita, depois de resolver os trechos bidirecionais
Cada linha é resolvida de forma independente e toda posição devolvida está alinhada a uma fronteira de cluster de grafemo estendido
O mesmo índice lógico pode aparecer em mais de um slot não adjacente em uma fronteira de direção mista, porque as duas posições visuais do cursor são fisicamente distintas
A unidade de índice solicitada muda apenas os índices lógicos relatados e não muda a ordenação visual
Declaração
function GetVisualCaretOrder(
IndexUnit: TPDFlibFormSelectionUnit;
out CaretIndices: TPDFlibFormCaretIndices): Integer;
Parâmetros
| IndexUnit | fsuUTF16CodeUnit, fsuUnicodeCodePoint ou fsuGraphemeCluster |
|---|---|
| CaretIndices | Recebe os índices lógicos de cursor ordenados da borda esquerda do texto visual à borda direita |
Valor retornado
Retorna o número de slots visuais de cursor, ou zero quando nenhuma edição está ativa ou a unidade de índice é inválida
Desempenho
Limites de grafemas e ordem visual resolvida ficam em cache para o valor de edição e a direção atuais, com buscas binárias usadas para mapear limites de trechos
Exemplo
var
Carets: TPDFlibFormCaretIndices;
begin
if Session.GetVisualCaretOrder(fsuGraphemeCluster, Carets) > 0 then
FirstVisualCaret := Carets[0];
end;
Veja também
MoveVisualCaret, SetTextDirection, GetSelectionRange, TPDFlibFormSession