GetVisualCaretOrder

Formularios, interacción, Unicode

Descripción

Devuelve cada posición del cursor de la edición activa en orden físico de izquierda a derecha después de resolver los tramos bidireccionales

Cada línea se resuelve de forma independiente y toda posición devuelta está alineada a un límite de clúster de grafemas extendidos

El mismo índice lógico puede aparecer en más de una ranura no contigua en un límite de dirección mixta, porque las dos posiciones visuales del cursor son físicamente distintas

La unidad de índice solicitada cambia solo los índices lógicos notificados y no cambia el orden visual

Declaración

function GetVisualCaretOrder(
  IndexUnit: TPDFlibFormSelectionUnit;
  out CaretIndices: TPDFlibFormCaretIndices): Integer;

Parámetros

IndexUnitfsuUTF16CodeUnit, fsuUnicodeCodePoint o fsuGraphemeCluster
CaretIndicesRecibe los índices lógicos del cursor ordenados desde el borde izquierdo del texto visual hasta el borde derecho

Valor devuelto

Devuelve el número de espacios visuales del cursor, o cero cuando no hay edición activa o la unidad de índice no es válida

Rendimiento

Los límites de grafemas y el orden visual resuelto se almacenan en caché para el valor y la dirección de edición actuales, con búsquedas binarias usadas para mapear los límites de segmentos

Ejemplo

var
  Carets: TPDFlibFormCaretIndices;
begin
  if Session.GetVisualCaretOrder(fsuGraphemeCluster, Carets) > 0 then
    FirstVisualCaret := Carets[0];
end;

Véase también

MoveVisualCaret, SetTextDirection, GetSelectionRange, TPDFlibFormSession