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.
CLIC sur un memo Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
CLIC sur un memo Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
CLIC sur un memo Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
CLIC sur un memo Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
CLIC sur un memo Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
CLIC sur un memo Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
CLIC sur un memo Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
CLIC sur un memo Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
CLIC sur un memo Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
CLIC sur un memo Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
CLIC sur un memo Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
CLIC sur un memo Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
CLIC sur un memo Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
CLIC sur un memo Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
CLIC sur un memo 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
-55%
Le deal à ne pas rater :
Friteuse sans huile – PHILIPS – Airfryer HD9200/90 Série 3000
49.99 € 109.99 €
Voir le deal

 

 CLIC sur un memo

Aller en bas 
2 participants
AuteurMessage
Oscaribout




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

CLIC sur un memo Empty
MessageSujet: CLIC sur un memo   CLIC sur un memo EmptyDim 20 Jan 2019 - 2:46

Je réagi car le forum ne bouge pas.

J'avais déjà publié un programme avec la réaction d'un clic sur un memoRich.

C'est une méthode que j'utilise quotidiennement; mais de temps en temps, il y a un problème. Comme j'insère un caractère à la position du curseur pour retrouver l'emplacement, parfois le rétablissement de celui-ci échoue.

J'ai trouvé une autre façon de savoir sur quoi on clique. c'est de voir autour du caret_position d'un memo, si le mot recherché est présent  pour mettre une info, ou procéder à une commande directe

J'ai repris la fable qui était toute prête: le Corbeau et le Renard.

Code:
' *******************************************************************************
' *           action d'un clic dans un memo, memoRich, ou autre                 *
' * cette sub permet de rechercher si un clic de souris dans un Memo ; MemoRich *
' * de voir si le texte en dessous est une commande préparée ou autre           *
' *******************************************************************************
LABEL controle

width 0,screen_x : height 0,800 : font_size 0,12 : font_name 0, "Times New Roman" :' font_bold 0
memo 10 : width 10,width_client(0) : height 10,450 : on_click 10,controle : bar_both 10
        remplissage()
memo 11 : width 11,300:top 11,460:color 11,230,230,200  

END :' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

controle:
  controle() : return

SUB controle()
   ' on prend dans l'exemple les caractères de délimitations: "["  et "]"
   clear 11
   dim_local j%,tx$,a$, cur% , let$ , i%
   cur% = caret_position(10)  
   i% = cur%- 10 : if i% < 1 then i% = 1  :' 50 semble suffisent
   tx$ = text$(10) : ' récupération du texte du memo
   if cur% > 1
      for j% = cur% to i% step -1
         let$ = mid$(tx$,j%,1)        
         if let$ = chr$(10) then exit_for
         if let$ = "]" then exit_for :' il n'y a pas de délimiteur : "[' devant, donc ne correspond à rien
        
         if let$ = "[" :' trouvé le devant
            tx$ = right_pos$(tx$,j%)  
            for i% = 1 to cur% + 100
               let$ = mid$(tx$,i%,1)
               if let$ = chr$(13) then exit_for : ' sortie de la ligne
               if let$ = "]"
                  tx$ = left$(tx$,i%)
                  traitement(tx$)
                  exit_sub
               end_if
            next i%
         end_if
      next j%  
   end_if    
END_SUB

SUB traitement(tx$)
   clear 11
   tx$  = upper$(tx$)
   if tx$ = "[RENARD]"  then item_add 11,"Mot Renard à définir "
   if tx$ = "[CORBEAU]" then item_add 11,"Oiseau de couleur noir"
   if tx$ = "[PHENIX]"  then item_add 11,"Autre oiseau rare"
END_SUB

SUB remplissage()
   item_add 10,"   Le Corbeau et le Renard"  
   item_add 10,"   "    
   item_add 10,"   Maître [Corbeau] sur un [arbre] perché,"  
   item_add 10,"   Tenait en son bec un fromage."  
   item_add 10,"   Maître [Renard] par l’odeur alléché"  
   item_add 10,"   Lui tint à peu près ce langage :"  
   item_add 10,"   Et bonjour, Monsieur du [Corbeau]."  
   item_add 10,"   Que vous êtes joli ! que vous me semblez beau !"  
   item_add 10,"   Sans mentir, si votre ramage"  
   item_add 10,"   Se rapporte à votre plumage,"  
   item_add 10,"   Vous êtes le [Phenix] des hôtes de ces bois."  
   item_add 10,"   À ces mots le [Corbeau] ne se sent pas de joie :"  
   item_add 10,"   Et pour montrer sa belle voix,"  
   item_add 10,"   Il ouvre un large bec, laisse tomber sa proie."  
   item_add 10,"   Le [Renard] s’en saisit, et dit : Mon bon Monsieur,"  
   item_add 10,"   Apprenez que tout flatteur"  
   item_add 10,"   Vit aux dépens de celui qui l’écoute."  
   item_add 10,"   Cette leçon vaut bien un fromage sans doute."  
   item_add 10,"   Le [Corbeau] honteux et confus"  
   item_add 10,"   Jura, mais un peu tard, qu’on ne l’y prendrait plus."  
END_SUB
Revenir en haut Aller en bas
Oscaribout




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

CLIC sur un memo Empty
MessageSujet: Re: CLIC sur un memo   CLIC sur un memo EmptyDim 20 Jan 2019 - 12:45

Je viens d'apporter un supplément: branchement à un ancre.
Si on clic par exemple sur "[GO moral] dans l'exemple, le curseur va vers le branchement.

Code:
' *******************************************************************************
' *          action d'un clic dans un memo, memoRich, ou autre                *
' * cette sub permet de rechercher si un clic de souris dans un Memo ; MemoRich *
' * de voir si le texte en dessous est une commande préparée ou autre          *
' *******************************************************************************
LABEL controle

width 0,600 : height 0,500 : font_size 0,12 : font_name 0, "Times New Roman" :' font_bold 0
memo 10 : width 10,width_client(0) : height 10,200 : on_click 10,controle : bar_both 10
        remplissage()
memo 11 : width 11,300:top 11,210:color 11,230,230,200 

END :' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

controle:
  controle() : return

SUB controle()
  ' on prend dans l'exemple les caractères de délimitations: "["  et "]"
  clear 11
  dim_local j%,tx$,a$, cur% , let$ , i%
  cur% = caret_position(10) 
  i% = cur%- 10 : if i% < 1 then i% = 1  :' 50 semble suffisent
  tx$ = text$(10) : ' récupération du texte du memo
  if cur% > 1
      for j% = cur% to i% step -1
        let$ = mid$(tx$,j%,1)       
        if let$ = chr$(10) then exit_for
        if let$ = "]" then exit_for :' il n'y a pas de délimiteur : "[' devant, donc ne correspond à rien
       
        if let$ = "[" :' trouvé le devant
            tx$ = right_pos$(tx$,j%) 
            for i% = 1 to cur% + 100
              let$ = mid$(tx$,i%,1)
              if let$ = chr$(13) then exit_for : ' sortie de la ligne
              if let$ = "]"
                  tx$ = left$(tx$,i%)
                  traitement(tx$)
                  exit_sub
              end_if
            next i%
        end_if
      next j% 
  end_if   
END_SUB

SUB traitement(tx$)
  clear 11
  tx$  = upper$(tx$)
  if tx$ = "[RENARD]"  then item_add 11,"Mot Renard à définir "
  if tx$ = "[CORBEAU]" then item_add 11,"Oiseau de couleur noir"
  if tx$ = "[PHENIX]"  then item_add 11,"Autre oiseau rare"
  if tx$ = "[GO MORAL]"  then go(tx$)
  if tx$ = "[GO TITRE]"  then go(tx$)

END_SUB
' ---------------------------
SUB go(tx$)  : ' branchement
  dim_local i%,a$
  tx$ = right_pos$(tx$,5) : tx$ = ">"+left$(tx$,len(tx$)-1)+"<"
      if count(10) > 0
        for i% = 1 to count(10)
            a$ = item_read$(10,i%)
            if instr(upper$(a$),tx$) > 0
              item_delete 10,i%
              item_insert 10,i%,a$
            end_if
        next i%
      end_if
END_SUB
' ---------------------------
SUB remplissage()
  dim_local a$
  item_add 10,"  Le Corbeau et le Renard" 
  item_add 10,"        [GO moral] >TITRE<"
  item_add 10,"  Maître [Corbeau] sur un [arbre] perché," 
  item_add 10,"  Tenait en son bec un fromage." 
  item_add 10,"  Maître [Renard] par l’odeur alléché" 
  item_add 10,"  Lui tint à peu près ce langage :" 
  item_add 10,"  Et bonjour, Monsieur du [Corbeau]." 
  item_add 10,"  Que vous êtes joli ! que vous me semblez beau !" 
  item_add 10,"  Sans mentir, si votre ramage" 
  item_add 10,"  Se rapporte à votre plumage," 
  item_add 10,"  Vous êtes le [Phenix] des hôtes de ces bois." 
  item_add 10,"  À ces mots le [Corbeau] ne se sent pas de joie :" 
  item_add 10,"  Et pour montrer sa belle voix," 
  item_add 10,"  Il ouvre un large bec, laisse tomber sa proie."
  item_add 10," >MORAL<"
  item_add 10,"  Le [Renard] s’en saisit, et dit : Mon bon Monsieur," 
  item_add 10,"  Apprenez que tout flatteur" 
  item_add 10,"  Vit aux dépens de celui qui l’écoute." 
  item_add 10,"  Cette leçon vaut bien un fromage sans doute." 
  item_add 10,"  Le [Corbeau] honteux et confus" 
  item_add 10,"  Jura, mais un peu tard, qu’on ne l’y prendrait plus."
  item_add 10," [GO titre]"
  a$ = item_read$(10,1)
  item_delete 10,1
  item_insert 10,1,a$
END_SUB

Bonne soirée.
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

CLIC sur un memo Empty
MessageSujet: +++   CLIC sur un memo EmptyDim 20 Jan 2019 - 15:29

C'est une recherche intéressante !
Mais tous ces crochets, ce n'est pas très joli, esthétiquement.
Il devrait être possible de s'en passer en faisant
un double_clic sur les mots, ce qui les mets en surbrillance
ensuite, on élimine l'espace final (RTRIM$()),
on obtient le mot en select_read$()...,
et pour rediriger vers les >TITRE< etc...,
select_text$() et caret_position N,x.
Cela devrait marcher sans avoir à mettre des caractères
à utilité technique dans le texte qui resterait purement littéraire.
Je ne l'ai pas essayé, mais ça devrait marcher.
study
Pour ce qui est de l'immobilité du forum, en ce moment,
c'est carrément le vide inter-sidéral !
Est-ce que tout le monde est parti au ski ?
(à moins que ce soit la période d'hibernation ?)
Sleep Laughing
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Oscaribout




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

CLIC sur un memo Empty
MessageSujet: Re: CLIC sur un memo   CLIC sur un memo EmptyDim 20 Jan 2019 - 16:12

C'est gentil de me répondre.

En réalité je me suis dit que si de temps en temps quelqu"un n'intervenait pas, le forum finira par disparaître.

Tu as tout à fait raison concernant les crochets. C'est un programme que j'ai fait cette nuit, après avoir modifié le mien qui n'a rien avoir avec celui-ci, et j'ai vu que le principe était plus concluant que l'insertion d'un caractère (chr$(7) dans mon cas), et la recherche de ce dernier.

Le problème c'est de délimiter le mot. S'il n'y avait pas les mots composés, l'espace pourrait faire l'affaire. Je n'ai voulu que montrer le principe, et vous laissant libre de réfléchir. On peut ainsi en reculant depuis le curseur, lire dans une table et voir si la portion de devant se trouve dans la table :
si dans la boucle on lit: "corb" et dans la table on a "corbeau", alors on peut voir si la suite de "corb" est "corbeau". J'ai mes idées, je vous laisse améliorer le principe.

Bon dimanche.
Revenir en haut Aller en bas
Contenu sponsorisé





CLIC sur un memo Empty
MessageSujet: Re: CLIC sur un memo   CLIC sur un memo Empty

Revenir en haut Aller en bas
 
CLIC sur un memo
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Gestion du Simple clic et du Double clic
» Panora-clic!
» Clic droit
» Clic sur un objet 3D.
» un clic droit évènementiel

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: