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
| Index | 0 tabanlı UTF-16 konumu; 0 ile geçerli değer uzunluğu aralığına sınırlandırılır |
|---|---|
| IndexUnit | Sonucun 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