La gestion du texte est terminée, via les boutons entourés de rouge et un menu contextuel basique. Changement par rapport à ce qui était prévu hier :
Code : Tout sélectionner
Les boutons "B", "I" et "U" ne seront disponibles qu'en mode RTF. Ils ne seront à priori pas contextualisés (enfoncés) en fonction du texte sélectionné.
Il y a eu quelques problèmes avec ce RichEdit :
- Impossible de passer le composant en police de type Courrier, à priori le forçage de Font.Pitch à fpFixed n'est pas pris en compte. Il n'y a donc que Fixedsys et Lucida Console proposées en polices proportionnelles, en plus de 5 polices non proportionnelles et de Wingdings.
- Le passage du RichEdit en mode PlainText n'a en fait aucun effet sur son contenu, cela ne sert qu'à transférer son contenu vers du texte sans mise en page (prochaine étape : la création des données). La bascule entre les modes TXT et RTF fait donc une sélection de tout le texte, un changement de police, puis une restauration de la sélection initiale. Pas de problème de lenteur même sur 20.000 lignes.
- La version Delphi 5 du RichEdit était limité par défaut à 64 Ko de texte, au delà l'activation du Passage à la ligne faisait apparaître les codes RTF.
- Finalement, le raccourci clavier [Ctrl+I] destiné à l'italique était interprété par le RichEdit comme une demande d'insertion de tabulation, il a donc fallu désactiver cela. Celui-là a été assez méchant, d'habitude il faut mettre un Key := 0 dans le OnKeyDown, mais là ça ne marchait pas, il fallait surcharger le OnKeyPress.
- Les raccourcis-claviers natifs du RichEdit n'ont pas été désactivés, donc il sera possible de faire un peu plus de mise en page que ce que XT proposera.
Prochaines étapes :
- La gestion des dossiers dans le TreeView, via récupération des autres outils.
- La gestion des données dans la ListView, et possible problématique de la sauvegarde du texte en mode RTF.