Bonjour,
Je cherche à ajuster automatiquement la hauteur et le contenu des cellules d'une colonne de mes StringGrids en fonction de la largeur de celle-ci (la colonne), les contenus des cellules étant multilignes (moins de 255 caractères). Pour l"instant, j'ai une "piste" qui fonctionne sous Win et Nux en utilisant des TMemos "externes" (cf petite vidéo).
C'est correct pour une cellule de la colonne, mais comment généraliser cette solution à l'ensemble des lignes ? Cela serait assez facile si FPC permettait les indirections. Mais tel ne semble pas être le cas. J'ai déjà étudié un peu la question aux dernières grandes vacances et cela me semble être une vraie faiblesse du Pascal.
Première solution "idéale" : je voudrais me passer des TMemos. Directement avec les TCanvas ? Cela semble faisable sous Windows -on trouve des codes en Delphi- mais le code ne me semble pas transposable sous Nux de prime abord. Et évidemment, cela ne m'intéresse pas si je n'ai pas le code équivalent en Nux.
Deuxième solution : je suis en train de me demander s'il est possible
1. d'intégrer des TMemos à des cellules. Je pense que c'est jouable puisque je l'ai fait avec des ProgressBars pour threader des ftp...à la grande différence près que je connaissais le nombre de lignes (8 threads max en //).. Mais comment créer n TMemos différents, n n'étant pas connu à l'avance et surtout comment les créer puis les traiter sans indirections ?
2. En supposant ce premier problème réglé, comment gère-t-on les interactions ? Mon source actuel me permet de calculer et d'adapter la hauteur nécessaire du TMemo à partir d'une largeur donnée [celle de la colonne], de la fonte (celle de la colonne) et d'un contenu Texte (celle de la cellule). Le TMemo fait alors le "WordWrap" puis renvoie son image (ie la disposition des mots) à la cellule. Mais comment et à quel moment communique-t-il ces renseignements (Taille et "disposition") à la cellule qui le contient ? OnDrawCell ?
A moins qu'il n'y ait beaucoup plus simple ?
Merci.
Cordialement. Gilles
Partager