SelectionUTF16ToUnit

Formlar, etkileşim, unicode

Açıklama

Etkin düzenleme değeri içindeki sıfır tabanlı bir UTF-16 konumunu tam seçim birimlerinin sayısına dönüştürür

fsuUTF16CodeUnit ile indeks, kırpıldıktan sonra değişmeden döndürülür

fsuUnicodeCodePoint veya fsuGraphemeCluster ile o birimin sınır tablosu talep üzerine kurulur ve aranır; böylece bir vekil çiftin içindeki konum, onu kapsayan kod noktasına ve bir kümenin içindeki konum, önceki küme sınırına eşlenir

Sınır tabloları geçerli düzenleme değeri için önbelleğe alınır ve o değer her değiştiğinde atılır

Bildirim

function SelectionUTF16ToUnit(Index: Integer;
  IndexUnit: TPDFlibFormSelectionUnit): Integer;

Parametreler

Index0 tabanlı UTF-16 konumu; 0 ile geçerli değer uzunluğu aralığına sınırlandırılır
IndexUnitSonucun sayıldığı seçim birimi

Dönüş değeri

UTF-16 konumundan önce gelen tam kod noktası veya grafem kümesi sayısını döndürür; fsuUTF16CodeUnit için sınırlandırılmış dizinin kendisini döndürür

Örnek

// A surrogate pair counts as one code point unit
Session.SetEditValue('A' + WideChar($D83D) + WideChar($DE00) + 'B');
CaretUnits := Session.SelectionUTF16ToUnit(3, fsuUnicodeCodePoint);
// CaretUnits = 2

Ayrıca bkz.

SelectionUnitToUTF16, GetSelectionRange, SetSelectionRange, TPDFlibFormSelectionUnit, TPDFlibFormSession