FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Trouvailles pour Memo_rich Emptypar Pedro Hier à 10:37

» Un autre pense-bête...
Trouvailles pour Memo_rich Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Trouvailles pour Memo_rich Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Trouvailles pour Memo_rich Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Trouvailles pour Memo_rich Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Trouvailles pour Memo_rich Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Trouvailles pour Memo_rich Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Trouvailles pour Memo_rich Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Trouvailles pour Memo_rich Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Trouvailles pour Memo_rich Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Trouvailles pour Memo_rich Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Trouvailles pour Memo_rich Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Trouvailles pour Memo_rich Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Trouvailles pour Memo_rich Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Trouvailles pour Memo_rich Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
LEGO Icons 10331 – Le martin-pêcheur
Voir le deal
35 €

 

 Trouvailles pour Memo_rich

Aller en bas 
2 participants
AuteurMessage
Oscaribout




Nombre de messages : 471
Date d'inscription : 29/12/2016

Trouvailles pour Memo_rich Empty
MessageSujet: Trouvailles pour Memo_rich   Trouvailles pour Memo_rich EmptySam 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_rich

Normalement 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.
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Trouvailles pour Memo_rich Empty
MessageSujet: Re: Trouvailles pour Memo_rich   Trouvailles pour Memo_rich EmptySam 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
Revenir en haut Aller en bas
Oscaribout




Nombre de messages : 471
Date d'inscription : 29/12/2016

Trouvailles pour Memo_rich Empty
MessageSujet: Re: Trouvailles pour Memo_rich   Trouvailles pour Memo_rich EmptySam 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.
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Trouvailles pour Memo_rich Empty
MessageSujet: Re: Trouvailles pour Memo_rich   Trouvailles pour Memo_rich EmptyDim 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.
Revenir en haut Aller en bas
Oscaribout




Nombre de messages : 471
Date d'inscription : 29/12/2016

Trouvailles pour Memo_rich Empty
MessageSujet: Re: Trouvailles pour Memo_rich   Trouvailles pour Memo_rich EmptyDim 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.
Revenir en haut Aller en bas
Contenu sponsorisé





Trouvailles pour Memo_rich Empty
MessageSujet: Re: Trouvailles pour Memo_rich   Trouvailles pour Memo_rich Empty

Revenir en haut Aller en bas
 
Trouvailles pour Memo_rich
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» un MemoRich greffé sur Panoramic
» Aide-mémoire des mots-clés Panoramic
» Aide pour la création d'un wrapper pour le langage Linotte.
» Petits jeux pour enfants et pour moins jeunes
» Pour mes petits-enfants et pour les vôtres

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: