Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Trouvailles pour Memo_rich | |
| | Auteur | Message |
---|
Oscaribout
Nombre de messages : 471 Date d'inscription : 29/12/2016
| Sujet: Trouvailles pour Memo_rich Sam 10 Nov 2018 - 0:31 | |
| Bonsoir, Peut-être que ceci va vous intéressez. Je peux enfin me servir du Memo_rich de Panoramic. Le programme étant un travail personnel qui ne concerne que moi, j'en ai fait un pour le forum pour tester. On_click ne fonctionne pas,mais: ON_CHANGE, ON_KEY_UP et ON_KEY_DOWN. J'ai pas testé avec les commandes de souris, mais il y a aussi, et c'est très important: CARET_POSITION et CARET_POSITION() qui fonctionne aussi. Cela m'a permit de faire ce programme de présentation pour faire une première évéluation. Dommage que l'on ne puisse se servir des commandes de copier/coller de Panoramic, vu que vous les avez réfutées ici: https://panoramic.1fr1.net/t5969-commande-presse-papiers-pour-memo_richNormalement le programme de teste si le forum ne mange pas les caractères, devrait fonctionner directement. - Code:
-
rem "===================================================================" rem " programme montrant des possibilités de travail avec MEMO_RICH " rem "===================================================================" ' panoramic_editor 0.9.28i18 du 27 avril 2018 ' http://panoramic.1fr1.net/t5969-commande-presse-papiers-pour-memo_rich
DIM entete$,rem$,motClef$,chaine$,cmd$ ,par$ , hirl$ ,fin$ , b$ , titre$ , normal$ , clic% ,atribu$ , u$ label quit , ctrl , ici , close20 , selection , save u$ = chr$(13)
WIDTH 0,900: HEIGHT 0,300 FORM 10: TOP 10,60: LEFT 10,80: WIDTH 10,1000: HEIGHT 10,250: BORDER_small 10 :on_close 10,quit MEMO_RICH 11: PARENT 11,10: WIDTH 11,800 :HEIGHT 11,height_client(10) : bar_vertical 11 : ON_mouse_down 11,ctrl
' memo 7:file_load 7,"z:\attr.rtf" : atribu$ = text$(7) : hide 7 MEMO_RICH 13: PARENT 13,10: LEFT 13,805:HEIGHT 13,height(11)-30 : WIDTH 13,150 hint 13,"écrire une partie du texte en face du model,"+u$+" sélectionnez celui-ci, "+u$+"et copier par [CTRL V], "+u$+"ensuite cliquez sur le bouton. "+u$+"Une fois dand le texte, collez!"
atribu$ ="{\rtf1\ansi\ansicpg1252\deff0\deflang1036{\fonttbl{\f0\fnil\fcharset0 Consolas;}{\f1\fnil MS Sans Serif;}}" atribu$ =atribu$+"{\colortbl ;\red255\green192\blue0;\red0\green0\blue255;\red255\green255\blue0;}" atribu$ =atribu$+"\viewkind4\uc1\pard\sl240\slmult1\cf1\highlight2\lang12\b\f0\fs28 Titre:\cf0\highlight0\b0\fs22" atribu$ =atribu$+"\par \pard Normal:" atribu$ =atribu$+"\par \highlight3\b Cde :\highlight0\b0 \lang1036\f1\fs16" atribu$ =atribu$+"\par }" text 13,atribu$
BUTTON 14:parent 14,10:caption 14,"Sortie":width 14,110:top 14,height(13)-30:left 14,825:on_click 14,selection hint 14,"Remet le texte de départ" ' sauve pour récupérer au départ les attributs (bouton 13) ' button 15:parent 15,10:caption 15,"sauve":left 15,830:top 15,100:on_click 15,save
memo 12:hide 12 :' memo (au lieu de list dlist...) par obligation à cause de TEXT qui fonctionne pour cet objet dlist 5 dlist 1 memo 2 : width 2,screen_x:font_name 2,"Consolas" ' ------------------------------------------------------------------------------ ' définir une form pour hint FORM 20:width 20,300:height 20,110 : border_small 20:font_size 20,10:left 20,screen_x/2-150 : top 20,screen_y/2-50: hide 20 on_close 20,close20 memo 21:parent 21,20:full_space 21 : color 21,220,230,255 ' ------------------------------------------------------------------------------ ' programme en exemple item_add 5,"Le Corbeau et le Renard" item_add 5,"" item_add 5,"Maître [Corbeau] sur un arbre perché," item_add 5,"Tenait en son bec un fromage." item_add 5,"Maître [Renard] par l’odeur alléché" item_add 5,"Lui tint à peu près ce langage :" item_add 5,"Et bonjour, Monsieur du [Corbeau]." item_add 5,"Que vous êtes joli ! que vous me semblez beau !" item_add 5,"Sans mentir, si votre ramage" item_add 5,"Se rapporte à votre plumage," item_add 5,"Vous êtes le [Phenix] des hôtes de ces bois." item_add 5,"À ces mots le [Corbeau] ne se sent pas de joie :" item_add 5,"Et pour montrer sa belle voix," item_add 5,"Il ouvre un large bec, laisse tomber sa proie." item_add 5,"Le [Renard] s’en saisit, et dit : Mon bon Monsieur," item_add 5,"Apprenez que tout flatteur" item_add 5,"Vit aux dépens de celui qui l’écoute." item_add 5,"Cette leçon vaut bien un fromage sans doute." item_add 5,"Le [Corbeau] honteux et confus" item_add 5,"Jura, mais un peu tard, qu’on ne l’y prendrait plus." item_add 5,"123456789[abc]45678"
' ------------------------------------------------------------------------------------------------------------------ ' ENTÊTE item_add 12,"{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1036{\fonttbl{\f0\fnil\fcharset0 Consolas;}}" item_add 12,"{\colortbl ;\red255\green192\blue0;\red0\green0\blue255;\red155\green0\blue211;\red255\green255\blue0;}" item_add 12,"{\*\generator Riched20 10.0.15063}\viewkind4\uc1 "
titre$= "\pard\sl240\slmult1\cf1\highlight2\b\f0\fs28\lang12 " ' \sl... interligne normal$ ="\cf0\b0 " cmd$ ="\highlight4\b " :' une commande entre-crochets par$ ="\par" :' paragraphe hirl$ ="\highlight0\b0 ":' retire le soulignement
relire_data() mettre_en_forme() end ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% quit: terminate ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% save: file_save 13,"z:\attr.rtf" return ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% selection: ' select_text, select_read$, les fonctions clipboards ne fonctionnent pas, et ma demande les concernant, vous les avez réfutés. ' reste à sélectionner directement, couper, et reporter sur le memorich de départ par [CTRL V] text 13,atribu$ set_focus 11 return ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SUB mettre_en_forme() dim_local txt$, v%, aa$ , i% , bb$ , debut$ , w% , dilut$ if count(5) > 0 txt$=item_read$(5,1) debut$ = titre$+txt$+"\cf3"+hirl$ +"\fs22 " item_add 12,debut$ + par$ for i% = 2 to count(5) txt$ = item_read$(5,i%) txt$=reverse$(txt$) v% = instr(txt$,"]") if v% > 0 aa$ = right_pos$(txt$,v%) bb$ = left$(txt$,v%) aa$=reverse$(aa$) bb$ = reverse$(bb$) ' -------------------------------------------------------------------------------- v% = instr(aa$,"[") debut$ = left$(aa$,v%) : aa$= right_pos$(aa$,v%+1) txt$ = debut$ repeat v% = instr(aa$,"]") if v% > 0 txt$ = txt$ + cmd$ + left$(aa$,v%-1) + hirl$ w% = instr(aa$,"]") dilut$ = right_pos$(aa$,w%-2) aa$ = right_pos$(aa$,w%-1) w% = instr(dilut$,"[") if w% > 0 if w% > 1 txt$ = txt$ + left$(dilut$,w%-1) end_if end_if aa$ = right_pos$(dilut$,w%) end_if until aa$ = "" or scancode = 27 bb$=trim$(bb$) item_add 12,txt$ +bb$+par$ ELSE item_add 12, normal$ + reverse$(txt$) + par$ END_IF txt$ = text$(12) : text 11,txt$ :' optionnel pour voir progrssion affichage next i% txt$ = text$(12) text 11,txt$ ' file_save 11,"z:\xx.rtf" end_if END_SUB ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ctrl: ctrl(caret_position(11)) return ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SUB ctrl(i%) ' dans le schéma codé, une commande est entourée de crochets, et ici, on regarde si on a cliqué sur une commande dim_local a$ , v%,c$ , tx$ ,b$ , w% , lig% tx$ = text$(11) a$ = left$(tx$,i%+50) lig% =0 repeat :' RECHERCHE DE LA LIGNE CLIQUÉE pour se repositionner après w% = instr_pos(a$,chr$(13)+chr$(10),w%+1) lig%=lig%+1 until scancode = 27 or w% =0 for v% = i% to 1 step -1 :' recherche dans la ligne une commande c$ = mid$(a$,v%,1) if c$ = "]" then exit_for :' hors du mot if c$ = "[" b$ = c$ for w% = v%+1 to v%+50 c$ = mid$(a$,w%,1) if c$ = "]" b$ = mid$(tx$,v%,w%-v%+1) ' ICI TRAITEMENT si commande b$ = upper$(b$) wiki(b$) exit_for end_if next w% end_if if w% > v% then exit_for next v% a$ = item_read$(11,lig%) if lig% > 1 then lig%=lig%-1 item_insert 11,lig%," @@@@@@@@@@@@@@@@@@@ INSERTION @@vérification@@@@@@@@@@@@@@@@@@@@@@@" ' message "insertion" :' si on veut voir item_delete 11,lig% :' on retire la ligne insérée. caret_position 11,i% :' REMET LE CURSEUR A SA PLACE END_SUB ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SUB relire_data() restore_label ici clear 1 dim_local h$,i%,b$,t$,a$ for i% = 1 to 4 read a$ t$ = t$ +a$ next i% a$ ="" for i% = 1 to len(t$) step 2 b$ = mid$(t$,i%,2) if b$ = "0a" item_add 1,a$ : a$ = "" else a$ = a$ + chr$(hex(b$)) end_if next i% item_add 1,a$ END_SUB ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SUB wiki(hint$) dim_local i%,a$,t$,b$ ,j% clear 21 for i% = 1 to count(1) a$ = item_read$(1,i%) if a$ = hint$ item_add 21,a$ for j% = i%+1 to count(1) a$ = item_read$(1,j%) if a$ = "$$$" then exit_for : else : item_add 21,a$ next j% show 20 exit_for end_if next i% END_SUB ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% close20: hide 20 set_focus 11 return
ici: data "2424240a5B434F52424541555D0a7574696C6973E920616E6369656E6E656D656E7420656E20706C6F6D62657269652C20632765737420756E20E96CE9" data "6D656E74206DE974616C6C6971756520717569207365727420E020736F7574656E697220756E652063616E616C69736174696F6E0a2424240a5B52454E" data "4152445D0a556E2072656E617264207065757420EA74726520756E2027696E64696327206F7520756E2062726973657572206465206772E876652E0a24" data "24240a5B5048454E49585D0aEA74726520766976616E74206669677572E920737572206C27E96375206427756E20626C61736F6E0a2424240aA4A4A40a"
Une fois lancé, il y a 2 memo_rich, le premier affiche une fable de La Fontaine avec 3 attributs. Les mots en jaune sont des commandes ici pour montrer une possibilité. On peut modifier le texte, et mettre les attributs prévus sur le second memo_rich. Pour ce dernier, on clique sur l'une des trois lignes selon l'attribut qu'on veut utiliser. Ensuite on commence à écrire, puis on fait la sélection à copier et [CTRL C] et on clique sur le bouton qui remet le code de départ. Le curseur se replace dans le memo_rich de gauche, et on fait [CTRL V]. On peut donc continuer à écrire. Si vous n'aviez pas remis en cause ma demande concernant le copier/coller, avec ces dernières, complété par Select_Text et select_Read$() les choses auraient étés directe. Bon passons! C'est d'abord un outil de travail pour tester. Pour les attributs, il faut ouvrir WordPad, et les concevoir, puis les sauvegarder, et faire une reprise des codes. Maintenant faites-vous votre opinion. Voila ce que cela donne: - Spoiler:
Apparemment les codes ont l'air d'être corrects. | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Trouvailles pour Memo_rich Sam 10 Nov 2018 - 15:11 | |
| Je ne sais pas si cela va t'aider : tu peux simuler 'clipboard_paste N', mais tu dois formater le texte à insérer dans 'le memo_rich' auparavant: - Code:
-
text_insert 11,caret_position(11),atribu_start$+clipboard_string_paste$+atribu_end$ :' clipboard_paste 11 simulée Dans le même genre pour 'clipboard_copy N' - Code:
-
select_text 11,depart,longueur : clipboard_string_copy atribu_start$+trim$(select_read$(1))+atribu_end$ :' clipboard_copy N simulée
| |
| | | Oscaribout
Nombre de messages : 471 Date d'inscription : 29/12/2016
| Sujet: Re: Trouvailles pour Memo_rich Sam 10 Nov 2018 - 21:31 | |
| merci d'avoir regardé.
Tout ce que tu proposes, je l'ai essayé, et ça ne fonctionne pas.
Clipboard_paste N ne fonctionne pas pour Memo_Rich, ainsi que Select_read$ et Select_Text.
De plus item_add pose aussi parfois des problèmes. Si les 3/4 lignes de départ, tu veux les ajouter au fur et à mesure par item_add, le programme s'arrête et te dis:
Erreur Externe Ligne = 20 Erreur d'insertion de ligne RichEdit
Il faut cumuler le texte dans une variable, et le projeter avec text 11,atribu$ (dans mon programme).
J'ai aucune information de ce que Jack veut proposer avec Memo_rich, il refuse de répondre là dessus. Pourtant cela devrait je pense ne pas être trop compliqué d'implémenté Select_Text, Select_Read$ et les commandes de copier/coller. Quoique pour les fonctions clipboards, j'ai cru comprendre que dans la demande pour un autre langage, il faille ajouter une table, mais j'ai rien compris.
J'ai pas vérifié, mais il me semble que Klaus a fait cela avec kgf.
Je pense que si Jack intègre ces quelques fonctions, on peut faire à peut-près ce qu'on veut avec Memo_Rich. Cela n'aura pas l'allure de ce qu'on voit dans WordPad, mais (pour moi) ce n'est pas le but. C'est de pouvoir interagir entre le programme et le Memo_Rich, tout en pouvant écrire ou modifié le texte. | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Trouvailles pour Memo_rich Dim 11 Nov 2018 - 14:33 | |
| - oscaribout a écrit:
- Clipboard_paste N ne fonctionne pas pour Memo_Rich...
J'ai écrit: - silverman a écrit:
- tu peux simuler 'clipboard_paste N'
je n'ai pas dit que 'clipboard_paste N' fonctionnait, j'ai juste dit que c'était simulable, dans une sub, pourquoi pas. - oscaribout a écrit:
- ...ainsi que Select_read$ et Select_Text.
On a peut être pas la même version de panoramic_editor, car ça, ça marche chez moi: - Code:
-
' panoramic_editor v0_29_i4 dim null , p memo_rich 11 : left 11,100 item_add 11,"blablabla"
p=2 select_text 11,p,6 :' pas de surlignage dans le memo_rich(couleur à configurer ou bug?), mais selection ok null=FIND(trim$(select_read$(11)),11,p) :' contourner le pb de surlignage ' print trim$(select_read$(11)) print text$(11) après, je n'ai pas encore eu à insérer un 'memo_rich' dans mes codes, donc j'ai peu tester cet objet. | |
| | | Oscaribout
Nombre de messages : 471 Date d'inscription : 29/12/2016
| Sujet: Re: Trouvailles pour Memo_rich Dim 11 Nov 2018 - 16:05 | |
| J'ai téléchargé la dernière version. Celle utilisée était 0.9.28i18.
Oui il y a des différences que Jack n'a pas précisé il me semble.
Select_text et select_read$ fontionnent. Mais la sélection ne prend en compte que le texte brut. J'avais fait plein d'essais avec différents ajouts de style, et je n'obtenais que l'ensemble des codes avec le texte en copie, et non le texte formaté. Je reprendrai des essais. Mais ce qu'il faut c'est la possibilité de faire une copie du texte avec les attributs du texte. | |
| | | Contenu sponsorisé
| Sujet: Re: Trouvailles pour Memo_rich | |
| |
| | | | Trouvailles pour Memo_rich | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |