GetVisualCaretOrder
表单、交互、Unicode
描述
在解析双向片段后,按物理从左到右的顺序返回活动编辑的所有插入符位置
每行独立解析,返回的每个位置都对齐到扩展字素簇边界
在混合方向边界处,同一逻辑索引可能出现在多个不相邻的槽位中,因为两个可视插入符位置在物理上是不同的
请求的索引单位只改变报告的逻辑索引,不改变可视顺序
声明
function GetVisualCaretOrder(
IndexUnit: TPDFlibFormSelectionUnit;
out CaretIndices: TPDFlibFormCaretIndices): Integer;
参数
| IndexUnit | fsuUTF16CodeUnit、fsuUnicodeCodePoint 或 fsuGraphemeCluster |
|---|---|
| CaretIndices | 接收按从可视文本左边缘到右边缘排序的逻辑插入符索引 |
返回值
返回可视插入符槽位数量;没有活动编辑或索引单位无效时返回 0
性能
字素边界和解析出的可视顺序会针对当前编辑值和方向缓存,并使用二分查找映射运行段边界
示例
var
Carets: TPDFlibFormCaretIndices;
begin
if Session.GetVisualCaretOrder(fsuGraphemeCluster, Carets) > 0 then
FirstVisualCaret := Carets[0];
end;
另请参阅
MoveVisualCaret, SetTextDirection, GetSelectionRange, TPDFlibFormSession