Bonjour à tous,
J'essaye de faire un truc à priori assez bateau, mais qui me pose un
sérieux problème.
Je voudrais créer un traitement de texte rudimentaire : un editfield
dans lequel l'utilisateur aurait la possibilité de mettre en gras ou en
italique le texte qu'il saisit et d'insérer des liens hypertextes.
Ensuite, bien sûr je veux pouvoir sauvegarder le tout (dans une base de
données en l'occurrence).
Pour la mise en forme (gras et italique), pas de problème : j'enregistre
la chaine de caractères d'un côté (EditField.Text) et le style d'un
autre (EditField.TextStyleData). Pour réafficher le tout j'utilise
EditField.SetTextAndStyle texte, style.
Par contre, pour le lien je ne vois pas. A la rigueur, ce serait
possible si le texte du lien correspondait à l'adresse vers laquelle il
pointe (je lui met un style, genre bleu souligné, et au survol de
l'EditField, je repère ce style et je fais pointer vers l'adresse
correspondant au texte concerné à l'aide d'un ShowURL). C'est pas
forcément très simple mais c'est faisable. Mais si le texte du lien est
différent de l'adresse pointée, là je sèche. Il faudrait pouvoir
associer du texte "invisible" à une portion de texte de l'EditField (à
la manière d'un style). On enregistrerait l'adresse du lien dans ce
texte invisible.
Le plus gros problème réside dans le fait que le contenu de l'EditField
est changeant. Dans le cas contraire on aurait pu compter les caractères
et décréter que la portion de texte comprise entre les caractères tant
et tant correspond à un lien pointant vers telle adresse. Mais si on
modifie le texte précédent le lien ou, pire, si on déplace ce lien avec
un couper/coller, la numérotation des caractères se trouve chamboulée et
ça ne marche plus.
Quelqu'un a une solution ? Ou même une simple idée ?
JB
|