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 tras 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
| IndexUnit | fsuUTF16CodeUnit, fsuUnicodeCodePoint o fsuGraphemeCluster |
|---|---|
| CaretIndices | Recibe 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 ranuras visuales del cursor, o cero cuando no hay ninguna 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, utilizando búsquedas binarias para mapear los límites de los 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