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 |
|
|
| Mais que fait le capitaine MEMO ? | |
| | Auteur | Message |
---|
Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Mais que fait le capitaine MEMO ? Lun 22 Juil 2013 - 16:03 | |
| Bonjour à tous les Panoramiciens ! En ce moment je m'amuse sur une sorte de bloc-notes à trois colonnes, le principe étant qu'un double-clic sur l'une des deux premières, envoie la ligne sélectionnée dans la troisième... le but étant de faire très vite des rapports, des mémos très simples. Justement, la troisième colonne est gérée par un MEMO. Comme le texte que j'ajoute se met à la ligne SOUS les précédentes, j'ai trouvé une astuce pour coller ensemble les diverses lignes. Oui mais voilà, titres, sous-titres et contenu des paragraphes, tout se retrouve ainsi collé. Apparemment, dans un MEMO, on n'a pas droit à l'instruction ITEM_INDEX, (bien qu'on ait ITEM_READ$() qui renvoie le contenu d'une ligne en particulier), laquelle instruction permettrait de ne recoller ensemble que les lignes désirées. Pas grave, je vois déjà divers moyens de contourner l'obstacle. Mais quand-même, c'est peut-être moins élégant. Le programme n'est pas fini (mais quand même opérationnel). Pour info : - Code:
-
caption 0,"Mon petit rapporteur version 1.0" color 0,67,147,175 label ajout_titre,ajout_formule,RAZ,nouveau_titre,nouvelle_formule label efface_dernier_titre,efface_derniere_formule,insere_date label efface_derniere_ligne,colle_texte,efface_selection_titre label efface_selection_rubriques,vers_presse_papier,virgule label open_tst,sav_tst,open_init,sav_the_end label menu_aide dim i,texte$ width 0,640
main_menu 2 sub_menu 3:parent 3,2:caption 3,"Fichier" sub_menu 4:parent 4,2:caption 4,"Aide" sub_menu 5:parent 5,3:caption 5,"Ouvrir un Fichier TST" sub_menu 6:parent 6,3:caption 6,"Sauver TST"
form 100:hide 100:height 100,300:caption 100, "AIDE" top 100,80:left 100,360 alpha 7:alpha 8:alpha 9 left 7,40:font_size 7,18:caption 7,"> TITRES" left 8,250:font_size 8,16:caption 8,">> Sous-Titres" left 9,420:font_size 9,14:caption 9,">>> Le rapport final" list 10:width 10,185:color 10,219,130,13 list 12:width 12,185:color 12,251,146,7 ' ##################### ' Ici j'ajoute mes mots ' ##################### ' item_add 10,"RAPPORT" ' item_add 12,"Aujourd'hui,":item_add 12,"Hier," ' item_add 12,"à table":item_add 12,"pendant":item_add 12,"le repas" ' item_add 12,"l'atelier":item_add 12,"le coucher":item_add 12,"la nuit" ' item_add 12,"l'équipe":item_add 12,"groupe de vie" ' ##################### memo 14:color 14,248,152,27 left 10,30:left 12,34+width(10):left 14,38+width (10)+width(12) top 10,24:top 12,24:top 14,24 height 10,300:height 12,300:height 14,300 font_size 10,18:font_size 12,14
button 20:left 20,80:top 20,330:caption 20,"Ajouter" button 22:left 22,265:top 22,330:caption 22,"Ajouter" button 30:left 30,80:top 30,390:caption 30,"Sup Dernière" button 31:left 31,80:top 31,360:caption 31,"Sup Sélection" button 32:left 32,265:top 32,390:caption 32,"Sup Dernière" button 33:left 33,265:top 33,360:caption 33,"Sup Sélection" button 34:left 34,465:top 34,330:caption 34,"Insère la date" button 35:left 35,465:top 35,360:caption 35,"Virg" button 36:left 36,415:top 36,360:caption 36,"Sup Dernière" button 37:left 37,515:top 37,360:caption 37,"Coller" button 38:left 38,465:top 38,390:caption 38,"Presse-Papier"
gosub open_init
on_double_click 10,ajout_titre on_double_click 12,ajout_formule on_double_click 14,RAZ on_click 4,menu_aide on_click 5,open_tst on_click 6,sav_tst on_click 20,nouveau_titre:on_click 22,nouvelle_formule on_click 30,efface_dernier_titre on_click 31,efface_selection_titre on_click 32,efface_derniere_formule on_click 33,efface_selection_rubriques on_click 34,insere_date on_click 35,virgule on_click 36,efface_derniere_ligne on_click 37,colle_texte on_click 38,vers_presse_papier
end
ajout_titre: item_add 14,item_index$(10) return
ajout_formule: item_add 14,item_index$(12) return
RAZ: clear 14 return
nouveau_titre: texte$=message_input$("Ajout d'un nouveau titre à la liste","Tape ton texte","xxx") if texte$<>"xxx" then item_add 10,texte$ return
nouvelle_formule: texte$=message_input$("Ajout d'une formule à la liste","Tape ton texte","xxx") if texte$<>"xxx" then item_add 12,texte$ return
efface_dernier_titre: item_delete 10,count(10) return
efface_derniere_formule: item_delete 12,count(12) return
insere_date: item_add 14,date$ return
efface_derniere_ligne: item_delete 14,count(14) return
colle_texte: texte$="" for i=1 to count(14) texte$=texte$+item_read$(14,i)+" " next i clear 14 item_add 14,texte$ return
efface_selection_titre: item_delete 10,item_index(10) return
efface_selection_rubriques: item_delete 12,item_index(12) return
vers_presse_papier: clipboard_copy 14 return
virgule: texte$=item_read$(14,count(14))+", " item_delete 14,count(14) item_add 14,texte$ return
open_init: file_open_read 1,"reporter.txt" while file_eof(1)<>1 file_readln 1,texte$ item_add 10,texte$ end_while file_close 1 file_open_read 2,"freporter.txt" while file_eof(2)<>1 file_readln 2,texte$ item_add 12,texte$ end_while file_close 2 return
sav_the_end: file_open_write 1,"reporter.txt" for i=1 to count(10) file_writeln 1,item_read$(10,i) next i file_close 1 file_open_write 2,"freporter.txt" for i=1 to count(12) file_writeln 2,item_read$(12,i) next i file_close 2 return
open_tst: return
sav_tst: return
menu_aide: show 100:print_target_is 100 print " Cet utilitaire fabrique un rapport dans le troisième cadre, avant" print " de le copier dans le clipboard (bouton Presse-Papier)." print print " Le PREMIER cadre contient les titres des paragraphes," print " le second des formules déjà rédigées." print print " Un DOUBLE CLIC sur un cadre envoie la sélection..." print "... dans le TROISIEME cadre.OK ?" print print " Un bouton te permet d'ajouter tes titres et tes formules," print " qui seront SAUVEGARDÉS quand tu quitteras le programme." print print " Les boutons Sup permettent de supprimer la dernière ligne," print " ou une ligne de ton choix.Positionne le curseur à cet effet" print print " Les ajouts se placent l'un en-dessous de l'autre." print " Le bouton COLLER permet de refaire des lignes." return Bonne journée !!! | |
| | | Invité Invité
| Sujet: Re: Mais que fait le capitaine MEMO ? Lun 22 Juil 2013 - 23:35 | |
| Bonsoir: J'avais fait un post pour dire comment faire une sélection sur une ligne d'un memo comme pour un list. Je ne le retrouve pas, mais voici comment je procède (ça ira plus vite). Je mets on_click sur le memo à un sous-programme. à celui-ci je fais clipboard_string_copy <un caractère> qui ne sert pas comme chr$(4). puis string_copy <le memo>, ce qui a pour effet d'insérer ce caractère dans la ligne. Puis je fais une boucle for/next dans le memo, avec une variable qui s'incrémente des caractères de chaque ligne lue. Je teste avec instr(item_read$(<memo> , ligne) , <le caractère inséré>). Si ce caractère est trouvé, c'est qu'on est sur la bonne ligne. on retire le caractère ajouté par copie. On a le nb de caractères déjà, et la longueur de la ligne avec len(). Tu fais une sélection pour la montrer. Donc tu connais la ligne, et tu la montres. Voila. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Mais que fait le capitaine MEMO ? Mar 23 Juil 2013 - 0:21 | |
| | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mais que fait le capitaine MEMO ? Mar 23 Juil 2013 - 9:07 | |
| C'est en effet très intéressant, je le garde sous le coude pour expérimentation. Dommage qu'il n'y ait pas une rubrique 'trucs et astuces' pour répertorier tout ça, ce n'est pas facile (ou impossible) à retrouver au moment où on en a besoin. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| | | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mais que fait le capitaine MEMO ? Mar 23 Juil 2013 - 13:49 | |
| C'est pas bête, mais ça fait du boulot à maintenir, mais bon, c'est sûrement rentable. Ce qu'il y a c'est que tous les posts un peu anciens sont perdus dans la nature, avec comme tu dis un titre qui ne correspond pas toujours (ou pas souvent) au contenu. En tout cas ton système est le bon, à défaut de quelque chose ici, faire ses rubriques soi-même ! | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re: Mar 23 Juil 2013 - 15:08 | |
| Je suis un peu d'accord avec JL 35, ces astuces-là nous apportent beaucoup à nous les "nouveaux", et merci à Bignono de nous ouvrir ses coffres !!! @ Cosmos 70 : ton astuce fonctionne très bien, elle est géniale, je l'ai testée en tapant : - Code:
-
astuce_70: clipboard_string_copy chr$(4):clipboard_paste 14 for i=1 to count(14) if instr(item_read$(14 ,i),chr$(4))<>0 place_du_chr4=instr(item_read$(14 ,i),chr$(4)) ligne_courante_du_memo=i:message str$(i) texte$=left$(item_read$(14,i),place_du_chr4-1)+right$(item_read$(14,i),len(item_read$(14,i))-place_du_chr4) item_delete 14,i:item_insert 14,i,texte$ end_if next i return J'ai donc à ma disposition une variable ligne_courante_du_memoPar contre... je ne peux plus ni entrer du texte dans le MEMO (car le programme réagit au clic), ni même (et ça c'est encore plus frustrant ) un double-clic (garçon !) mais en tous cas je la garde et puis, ça me fait réfléchir et c'est ça l'essentiel ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 23 Juil 2013 - 15:14 | |
| Cela pourrait faire un petit article sur le site dans une nouvelle rubrique/catégorie "Trucs et Astuces"... ...il me semble qu' il est un peu là pour çà... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mais que fait le capitaine MEMO ? Mar 23 Juil 2013 - 15:49 | |
| @Froggy One C'est vrai que la méthode cosmos est originale et efficace (j'ai essayé), mais c'est vrai aussi qu'il y a quelques inconvénients, comme la saisie devenue impossible, et as-tu essayé le clic sur une ligne vide (il faut faire un test particulier), ou le clic juste après le dernier caractère d'une ligne ? C'est tout de même dommage que le item_index et le item_index$ ne marchent pas dans le cas du memo, alors que c'est prévu dans la doc. (Une remarque concernant la doc de Item_Insert N,L,T: le texte T est inséré dans l'objet N AVANT, et non après la ligne L comme indiqué par erreur dans la doc. Et c'est logique comme ça.)
@ygeronimi Entièrement d'accord pour une rubrique Trucs et Astuces ! Je m'aperçois que je m'en étais prévu une perso dans ma doc, mais je ne l'ai pas tenue à jour... Et puis c'est mieux collectif, des trucs qui sont évidents pour certains ne le sont pas pour d'autres. | |
| | | Invité Invité
| Sujet: Re: Mais que fait le capitaine MEMO ? Mar 23 Juil 2013 - 16:13 | |
| Bonjour, J'avais signalé ce problème aussi dans le sujet que j'avais fait. Pour modifier lememo, il y a deux solutions: la première est d'y aller par des touches <TAB>, et là pas de clic. La deuxième serait de faire l'appel à la saisie de la ligne par double_clic. Le simple clic est pour modifier le memo. On peut aussi ajouter un bouton: on veut modifier le memo, le bouton avec un effet de bascule, agit comme on_click ou off_click. Pour montrer dans quel état on est, tu ajoutes un picture qui dépasse de disons de 3 pixels de marge autour, comme je l'ai fait pour mon éditeur avec les boutons.
Tiens à propos de ceui-ci je n'ai plus pensé que la compilation AutoIt était en 64 bits. il faut aussi que je mette une version 32 bits. De toute fçon il n'y a pas urgence. Je suis en train de faire (quand je peux) quelque chose qui pourrait vous étonner. Mais j'en dis pas plus. Ce sera une surprise. De toute façon vous ne l'adoptez pas, mais moi je travaille avec pour ce programme. Là PsPad je le laisse de côté, et les petits inconvénients ne sont finalement pas vraiment génant.
Personnellement j’opterai pour l'ajout d'un bouton avec un cadre autour. |
| | | Invité Invité
| Sujet: Re: Mais que fait le capitaine MEMO ? Mar 23 Juil 2013 - 16:30 | |
| Il y a aussi la possibilité avec un double clic d'activer ou supprimer l'effet de bascule. Il siffit de mettre un hint sur le memo pour savoir dans quel état on est, on mettant le hint à jour.
J'ajoute qu'on alors colorer le memo sur la fonte ou sur le fond de manière différente, pour la sélection ou pour la modification.
Dernière édition par cosmos70 le Sam 3 Aoû 2013 - 18:15, édité 1 fois |
| | | Invité Invité
| Sujet: Re: Mais que fait le capitaine MEMO ? Sam 3 Aoû 2013 - 18:14 | |
| Bonjour, Je suis obligé de reprendre la dernière partie du post précédent. Ca ne marche pas avec un double_clic. Pourquoi? Car cette action, à la différence d'un simple clic, sélectionne de lui-même une partie de la ligne, et est remplacé par le caractère envoyé. Si on avait une instruction de désélection, on pourrait peut-être, mais ce n'ai pas le cas. Donc il reste le cas d'un bouton. Pour mon programme, car j'utilise en ce moment ce type de codage sur un memo, j'ai procédé ainsi. - Code:
-
modifier_liste: off_click [m_6] on_click [m_6],choix_item_montage set_focus [m_6] return Je désactive le on_click, pour éviter le branchement, et je le réactive aussitôt, en mettant le focus sur le memo. Cela permet avec les flêches de modifier le texte, et un clic relance la sélection. La méthode dépend du besoin de chacun. Ah!, vous mettez le numéro qui vous plait, à la place de [M_6]. Désolé pour l'erreur, je pensais l'idée bonne, mais je ne connaissais pas les conséquences du double-clic. |
| | | Contenu sponsorisé
| Sujet: Re: Mais que fait le capitaine MEMO ? | |
| |
| | | | Mais que fait le capitaine MEMO ? | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |