
EN: rebol.com -
rebol.org -
rebol.net -
FR: Rebol Documentation Project -
forum RebelBB -
rebol-france.org -
forum codeur -
Retourne l’offset dans une face de saisie de texte correspondant à une paire d’offset.
offset-to-caret face offset
face - La face contenant le texte. (type: object!)
offset - La position relative X-Y que l’on souhaite atteindre. (type: pair!)
C’est une fonction qui est fournie pour converir depuis un offset X-Y à l’intérieur d’une face de saisie de texte vers un index de caractères dans une chaîne. C’est principalement utilisé pour l’édition de texte, les opérations de dessin de texte telles que la colorisation de texte ou les liens hypertexte.
Voici un exemple intéressant. Quand vous cliquez sur votre souris dans la face texte du haut, la chaîne de caractères depuis cette position vers l’avant sera affichée dans la face de texte du bas.
view layout [ body 80x50 "This is an example string." feel [ engage: func [face act event] [ if act = 'down [ bx/text: copy offset-to-caret face event/offset show bx ] ] ] bx: body 80x50 white black ]
Quand la face du haut est cliquée, la variable event/offset contient l’offset X-Y qui est converti dans un index de position dans la chaîne de caractères avec offset-to-caret. La chaîne de caractères depuis le point vers l’avant est copié est affiché dans la boîte de texte du bas (bx).
Notez que cette chaîne de caractères ne doit pas être affichée pour que cette fonction fonctionne. Aussi souvenez vous que quand vous effectuez un changement dans le contennu de la chaîne de caractères, vous devez initialiser la face de texte line-list à NONE pour forcer le recalcul de tous les sauts de lignes.
caret-to-offset - Retourne la position relative offset pour la chaîne de caractères de la face de saisie de texte.