Page 1 sur 2
EditGadget et RTF
Publié : mar. 01/août/2023 10:18
par pat
Bonjour,
Copier le code ci-dessous mais en PB version 6.00, ou 5.73, mais en 64 bits :
If OpenWindow(0, 0, 0,550, 70, "Test tableau RTF", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
EditorGadget(0,0,0,550,70)
;------------------------------
b$="{\rtf1\ansi\deff0\trowd\trgaph108\cellx3600\pard\intbl Première cellule\cell\cellx7200 Deuxième cellule\cell{\row }}"
;------------------------------
SetGadgetText(0,b$)
Repeat
Event=WaitWindowEvent(1)
Select Event
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
CloseWindow(0)
EndIf
Ce code ne fonctionne pas, vous aurez une fenêtre vide.
Maintenant copier le code ci-dessus mais en PB 5.71 version 32 bits.
Ce code fonctionne parfaitemant bien et vous verrez une fenêtre avec une ligne de tableau.
En fait, pour la version PB 64 bits, se sont uniquement les codes RTF du tableau qui ne fonctionne pas, comme \trowd, \cell, \cellx, \row.
Si vous tapez "\b Je fais un test.\par" vous aurez bien une ligne en gras avec un retour à la ligne.
Comment faire pour que le code ci-dessus fonctionne avec les version 5.73 et 6.00 mais en 64 bits ?
Re: EditGadget et RTF
Publié : mar. 01/août/2023 12:25
par Micoute
Bonjour pat,
je pense que la solution est de recompiler le module RichEdit en 64 bits.
Re: EditGadget et RTF
Publié : mar. 01/août/2023 12:36
par Ollivier
pat a écrit :Copier le code ci-dessous mais en PB version 6.00, ou 5.73, mais en 64 bits
Il y a des notions linguistiques algorithmiques que j'avoue ne pas maîtriser.
Est-ce ça se traduit par << Copier le code ci-dessous en 64 bits, version 5.73 ou version 6 >> ?
Re: EditGadget et RTF
Publié : mar. 01/août/2023 16:54
par Mindphazer
En l'état, ce code ne fait qu'afficher le contenu de la chaîne b$ dans l'EditorGadget. En 32 ou 64bits (6.02) :
{\rtf1\ansi\deff0\trowd\trgaph108\cellx3600\pard\intbl Première cellule\cell\cellx7200 Deuxième cellule\cell{\row }}
Pour que l'EditorGadget l'affiche comme du RTF, il faut l'activer, et ça ne peut se faire que via une API :
Référence :
http://forums.purebasic.com/english/vie ... p?p=599728
Cela dit, le gadget reste vide, en 32 ou 64 bits.
Re: EditGadget et RTF
Publié : mer. 02/août/2023 12:22
par pat
Bonjour,
Je le répète, RTF avec EditorGadget fonctionne bien.
Seules les commandes de tableau du RTF ne sont pas reconnues à partir de la version 5.73.
Que ce soit en 32 bits ou en 64 bits.
Prenez mon code ci-dessus et faites-le tourner en PB 5.71, en 32 bits ou 64 bits.
Vous verrez une ligne de tableau dans la fenêtre.
Faites la même chose mais avec PB 5.73 et + et cela ne fonctionne pas. La fenêtre sera vide.
Faites l'essai vous-même.
Merci de faire la comparaison !!!
Re: EditGadget et RTF
Publié : mer. 02/août/2023 12:24
par pat
Pour Mindphaser :
Le code en b$ est du code RTF.
Et cela devrait fournir une ligne de tableau de deux colonnes, et ce qui fonctionne parfaitement bien en 5.71 mais pas en 5.73 et au delà.
Je le répète encore, faites la comparaison des deux versions : 5.73 ou + et cela ne fonctionne pas et la 5.71 et cela fonctionne.
Re: EditGadget et RTF
Publié : mer. 02/août/2023 15:15
par Mindphazer
Inutile de s'énerver.
Je précisais juste, avec en référence ce que Fred a expliqué, que l'activation du RTF dans l'EditorGadget est une fonction cachée (supportée uniquement par Windows), qui était activée par défaut avant la 6.02 mais qui ne l'est plus dorénavant. Il faut l'activer manuellement.
Je vous laisse le soin (ou pas) de vérifier en 6.02 le résultat de votre code.
Re: EditGadget et RTF
Publié : ven. 04/août/2023 10:38
par pat
Bonjour,
En PB 5.71 et même 5.72, 32 ou 64 bits, il n'y a pas besoin d'activer, cela est déjà fait.
Télécharge la version PB 5.71 et la version 5.73 ou + et fais la comparaison, ce que tu n'as toujours pas fait.
Et vérifie de toi-même !!!
Tu verras une ligne de tableau de deux colonnes dans la fenêtre en 5.71.
Et une fenêtre vide à partir de la version 5.73.
Fais cet effort de télécharger et de comparer.
Je pense parler français, il me semble.
Re: EditGadget et RTF
Publié : ven. 04/août/2023 10:48
par pat
Et la version 5.73 est déjà activé.
Le SendMessage() n'aura aucun effet puisque c'est déjà activé sur la 5.73.
Et en 5.73 : "\b Je fais un test.\par"
Tu verras ce texte en gras avec un retour à la ligne.
Cela fonctionne parfaitement bien, ce qui signifie que ce n'est pas l'activitation de RTF le problème.
Re: EditGadget et RTF
Publié : ven. 04/août/2023 14:19
par Mindphazer
Je vous crois sur parole.
Ce que je tentais d'expliquer (peut-être maladroitement, et si c'est le cas je m'en excuse platement), c'est que vu que ce n'est pas une fonctionnalité propre à PureBasic (à aucun moment, la documentation du gadget n'en parle, et ça ne marche que sous Windows, pas sur Linux ni MacOS), je ne suis pas sûr qu'il y a une quelconque prise en charge du problème par Fred.
Mais lui seul pourra répondre je pense.
Re: EditGadget et RTF
Publié : ven. 04/août/2023 15:18
par cage
Bonjour,
Testé avec PB 5.71 LTS x64, ça fonctionne

Avec les versions > 5.71, ça ne fonctionne plus.
cage
Re: EditGadget et RTF
Publié : sam. 05/août/2023 12:38
par pat
Merci cage de ton intervention.
Donc il y a un problème.
Peut-être faudrait-il en parler à Fred.
Ce serait bien que cela fonctionne dans toutes les versions.
Re: EditGadget et RTF
Publié : sam. 05/août/2023 14:28
par cage
Bonjour pat,
Il semble que Fred soit bien au courant:
https://www.purebasic.fr/english/viewtopic.php?t=81402
cage
Re: EditGadget et RTF
Publié : sam. 05/août/2023 14:46
par cage
Tu peux rechercher sur les 2 forums (French/English) les sujets parlant de EditorGadget et RTF sur
Google
avec la recherche suivante:
Rechercher sur Google
Peut-être y trouveras-tu une réponse.
cage
Re: EditGadget et RTF
Publié : sam. 05/août/2023 22:58
par Mindphazer
Le problème semble lié au passage de PB en Unicode à partir de la version 5.73 :
https://www.purebasic.fr/english/viewtopic.php?t=77356