Avril 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 |
|
| | Clipboard_copy N | |
| | Auteur | Message |
---|
Yannick
Nombre de messages : 8610 Age : 52 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Clipboard_copy N Mar 3 Sep 2013 - 4:41 | |
| Est ce déjà un sujet abordé ? Cette fonction ne copie que le texte sélectionné dans l' objet et le texte complet de l' objet comme dit dans le manuel... | |
| | | Invité Invité
| Sujet: Re: Clipboard_copy N Mar 3 Sep 2013 - 7:52 | |
| Bonjour, J'ai pas vraiment compris ce que tu veux obtenir. Normalement on ne copie qu'une sélection. Si la volonté est de copier tout le memo, il faut provoquer la sélection, soit par calcul avec LEN() de chque ligne + les retour-chariot, ou alors en mettant un nombre fantaisiste qui dépasse le nombre de caractère comme: - Code:
-
dim a$ memo 1 item_add 1, "je veux savoir la vérité" select_text 1,1,10000 message select_read$(1) J'en profite pour dire qu'il m'est pénible ce moment, car justement j'ai besoin de de pouvoir faire une copie sur un edit, et ce qui me paraîtrait simple à faire, lorsqu'on arrive à le faire sur un memo et une image, je ne peux pas avoir ce complément. A Panoramic il manque 2 commandes: une fonction clipboard, et une autre qui donne la position du curseur sur un edit .Voil ce qu'il faut faire comme gymnastique pour arriver à suivre le curseur (c'est un programme d'étude, et c'est pas fini. Le but est de remplacer un memoricht simplifié en 100% Panoramic, et c'est pas gagné). - Spoiler:
- Code:
-
height 0,screen_y label loop , exit dim sc% , a%,a$ , ligne% , objet% dim locatx% , locaty% ,xy% , col%
memo 10:width 10,500:font_size 10,10:font_bold 10:height 10,80 :bar_horizontal 10 edit 11:width 11,width(10):top 11,90:font_size 11,10 alpha 12:top 12,130:font_size 12,12:left 12,10 alpha 13:top 13,170:font_size 13,10:font_name 13,"Consolas" alpha 14:top 14,200:font_size 14,10:font_name 14,"Consolas" caption 14,"123456789 123456789 123456789 123456789 123456789 123456789"
alpha 15:top 15,220:font_size 15,10:font_name 15,"Consolas" memo 20 :left 20,30:top 20,300:width 20,width(0)-60:height 20, 200:color 20,230,230,0 alpha 16:top 16,260:font_size 16,12
button 17:height 17,15:caption 17,"=>>":top 17,310:width 17,30 alpha 18:top 18,260:left 18,100:font_size 18,12
container 100:top 100,520:width 100,width(0)-30:height 100,200 picture 101:parent 101,100:full_space 101:color 101,230,230,230 :font_name 101,"Consolas":font_size 101,10
picture 102:parent 102,100:width 102,width(101) :height 102,1:color 102,255,0,0 picture 103:parent 103,100:width 103,width(101) :height 103,1:color 103,255,0,0
list 200:top 200,730:width 200,100:height 200,120 list 201:top 201,730:width 201,300:height 201,120:left 201,110
for a%=1 to 100:if object_exists(a%)=1 then hint a%,a% next a%
set_focus 10
on_close 0,exit ligne% =1 :top 17,292 + ligne%*15 :caption 17,ligne% top 102,(ligne%-1)*20 +5 top 103,(ligne%-1)*20 +25 item_add 20,"{000}" if instr(item_read$(20,1) ,"{") > 0 then xy%=5 decompose()
gosub loop end ' ============================================================================== rem "END END END END END END END END END END END END END END END END END END " ' ==============================================================================
loop: sc%= scancode :caption 16,sc% if sc% = 35 then col% = len(item_read$(10,1)) if sc% = 36 then col% = 0 if sc% = 37 and col% > 0 then col% = col% -1 if sc% = 39 and col% < len(item_read$(10,1)) then col% = col% +1 caption 13,"col%="+str$(col%) caption 18,"len(ligne)="+str$(len(item_read$(10,1))) ' il faudra ensuite tenir compte de objet%, selon où on se trouve (scancode) if sc% = 13 repeat :until scancode = 0 :wait 30 item_insert 20,ligne%,item_read$(10,1) item_delete 10,1 item_delete 20,ligne%+1 item_insert 20,ligne% + 1, item_read$(10,1) if left$(text$(11),1) <> "{" then text$(11) = "{000"+text$(11) ligne%=ligne%+1 : caption 0,"ligne%=" + str$(ligne%):top 17,292 + ligne%*15 :caption 17,ligne% else ' ===============vers le haut======================================= if scancode = 38 and ligne% > 1 item_delete 20, ligne% item_insert 20,ligne%,caption$(12) :' item_read$(10,1) item_delete 10,1 ligne%= ligne%-1 : caption 0,"ligne%=" + str$(ligne%) :top 17,292 + ligne%*15:caption 17,ligne% item_insert 10,1,item_read$(20,ligne%) caption 12,item_read$(20,ligne%) if col% > len(caption$(12)) then col% = len(caption$(12)) caption 13,"col%="+str$(col%) caret_position 10,col% ' ================================================================== else ' ============vers le bas======================================== if scancode = 40 repeat:until scancode = 0 item_delete 20, ligne% :' voir si c'est pas un problème si count() < item_insert 20,ligne%,caption$(12) item_delete 10,1 ligne% = ligne% +1 : caption 0,"ligne%=" + str$(ligne%) :top 17,292 + ligne%*15 :caption 17,ligne% item_insert 10,1,item_read$(20, ligne%) caption 12,item_read$(20,ligne%) if col% > len(caption$(12)) then col% = len(caption$(12)) caption 13,"col%="+str$(col%) caret_position 10,col% else ' =========traitement ligne en cours========================== if item_read$(10,1) <> caption$(12) repeat:until scancode = 0 caption 12,item_read$(10,1) : caption 0,"ligne%=" + str$(ligne%):top 17,292 + ligne%*15 :caption 17,ligne% set_focus 10 clipboard_string_copy "¤" clipboard_paste 10 caption 15,item_read$(10,1)
col% = instr(item_read$(10,1) ,"¤") if col% > 0 and len(item_read$(10,1)) > col% then col%=col%-1 caption 13,"col%="+ str$(col%) item_delete 10,1 item_insert 10,1,caption$(12) +chr$(0) caret_position 10,col%
set_focus 10 else if sc% = 46:' del if item_read$(10,1) = caption$(12) ' ..... set_focus 10 clipboard_string_copy "¤" clipboard_paste 10 caption 15,item_read$(10,1) item_delete 10,1 item_insert 10,1,caption$(12) +chr$(0) caret_position 10,col% ' ..... end_if caption 18,"len(ligne)="+str$(len(item_read$(10,1))) if col% = len(item_read$(10,1)) and count(20) > ligne% beep caption 12,item_read$(10,1)+item_read$(20,ligne%+1) item_delete 20,ligne%+1 item_delete 10,1:item_insert 10,1,caption$(12) caret_position 10,col% end_if end_if end_if end_if end_if end_if top 102,(ligne%-1)*20 +5 top 103,(ligne%-1)*20 +25 pause 100 if sc%= 27 then goto exit goto loop
sub decompose() clear 200 : clear 201 dim_local a$,b$,a%, v% :xy% =0 a$ =item_read$(20,ligne%) text 11,a$ for a% = 1 to len(a$) b$ = mid$(a$,a%,1) if b$ ="{" xy% = xy%+5 item_add 200,mid$(a$,a%+1,3) item_add 201,mid$(a$,a%+5,1) v% = instr(mid$(a$,5,len(a$)),"{"):a% = a%+5 if v% > 0 item_add 201,mid$(a$,5,v%-1) a$ = mid$(a$,5,v%-1)
else item_add 200,mid$(a$,6,len(a$)) end_if end_if next a% ' si c'est correct, il faut remettre dans 10, et aussi coloriser end_sub
exit:
Dernière édition par cosmos70 le Mar 3 Sep 2013 - 8:25, édité 1 fois (Raison : code sauté sur une ligne) |
| | | Yannick
Nombre de messages : 8610 Age : 52 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 3 Sep 2013 - 9:44 | |
| Houla,houlala... Je me suis débrouillé avec "Clipboard_string_copy s$" s$=text$(N) clipboard_string_copy s$ | |
| | | Invité Invité
| Sujet: Re: Clipboard_copy N Mar 3 Sep 2013 - 10:25 | |
| Pourquoi - Citation :
- Houla,houlala...
J'ai pas très bien compris la question, et j'ai essayé d'y répondre en interprétant ta question. |
| | | Yannick
Nombre de messages : 8610 Age : 52 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 3 Sep 2013 - 13:20 | |
| J' ai pris peur devant ta démonstration certes très bien mais plus longue que la totalité du petit programme que je voulais faire. c' est tout. | |
| | | Invité Invité
| Sujet: Re: Clipboard_copy N Mar 3 Sep 2013 - 13:52 | |
| La démonstration ne te concernait pas, mais j'essaye de montrer l'utilitée d'avoir l'ensemble des fonctions de copie/coller sur un edit. Je suis obligé de me servir d'un memo, avec les complications que cela imposent. J'avais utilisé avant un EDIT, mais il me fallait un programme avec AutoIt pour le fonctionnement. C'était nettement plus simple, mais j'essaye du 100% Panoramic.
Dont j'ai profité de ton poste pour le faire savoir. Pendant que j'y suis, comme cela j'aurai été jusqu'au bout de mes désirs, c'est d'avoir des fonctions qui permettent de mettre le contenu des images dans une variable. Je reprendrais plus tard, je me fais roupiller. |
| | | Jack Admin
Nombre de messages : 2381 Date d'inscription : 28/05/2007
| Sujet: Re: Clipboard_copy N Mer 4 Sep 2013 - 21:05 | |
| @cosmos70: - Citation :
- A Panoramic il manque 2 commandes: une fonction clipboard, et une autre qui donne la position du curseur sur un edit .
Je viens de coder et tester la fonction CARET_POSITION(N) qui donne la position du curseur (en fait le caret) sur un EDIT (objet numéro N). Je mets en ligne une version d'essai d'ici demain. Qu'appelles tu une "fonction" CLIPBOARD ? Il y a déjà: CLIPBOARD_COPY N CLIPBOARD_PASTE N CLIPBOARD_CUT N CLIPBOARD_STRING_COPY S CLIPBOARD_STRING_PASTE$Et à mon avis, tout est faisable avec ces 5 instructions. - Citation :
- j'essaye de montrer l'utilitée d'avoir l'ensemble des fonctions de copie/coller sur un edit
Que veux-tu dire ? Qu'il manque la possibilité d'insérer du texte à une position définie sur un EDIT ou un MEMO ? | |
| | | Invité Invité
| Sujet: Re: Clipboard_copy N Mer 4 Sep 2013 - 22:33 | |
| Voila Jack ce qui me fait plaisir. Pa contre j'ai pas très bien compris: caret_position existe pour un edit. Tu veux dire l'inverse, c'est-à dire pouvoir lire la position du curseur. Là c'est un manque, et si tu l'as codé, c'est justement ce que j'avais besoin. Pour ce qui est des fonctions du clipboard, elles ne sont pas codées pour un edit, mais ces fonctions j'en avais besoin, car justement la position du curseur je ne pouvais la connaitre que par un code AutoIt.. Donc effectivement il n'y a pas les fonctions de copie/copier pour un edit, mais déjà avoir la position du curseur, cela me permet d'alléger le programme. Déjà qu'il faut que je le recommence en partie, car j'ai fais confiance à l'éditeur Panormamic pour la fonction de sauvegarde auto réglé à 5mn, et après plantage de mon ordi (de ma faute), la dernière version sauvegardée est du 2 septembre. Donc si tu as codé la fonction "miroir" à caret_position pour un edit, le mieux est que j'attende la sortie de la version express. Avec cette sortie, je peux donc faire un semblant de memorich 100% Panoramic (et ça fait deux testes presque complets qui fout le camp avec toutes les remarques pour m'y retrouver), et aussi refaire un éditeur 100% Panoramic avec la colorisation (et les testes sont concluant), ce qui permettra une maitrise totale du code. Je ne sais plus si je l'ai mis ou pas, car des choses ont étés effacées sur ce que j'ai mis, est-il possible d'avoir des images dans des variables, et pouvoir un peu comme je le faisais avec SPUT et SGET du Gfa basic sur Atari. Il y a image, mais c'est moins pratique, et comme image est codé, je me suis demandé si le contenu d'un picture (et ici il s'agit de ligne picture pour du texte), ne pourrait pas être mis dans une variable, et ainsi "jouer avec" pour les décalages, et insertions. J'ai bien l'idée en tête, mais en réalité j'en ai plusieurs, et c'est selon les possibilités que j’agis ou réfléchie. Sur ces dernières fonctions si ce n'est pas possibles alors que je pense que c'est une dérivation des commandes images, je ne t'en voudrais pas si tu n'y réponds pas, vu le travail que tu as à faire. En tout cas merci beaucoup. C'est un peu charabia ce que je marque, donc le principe est le suivant: J'ai un edit, et je contrôle le contenu pour pouvoir afficher en temps réel le contenu dans un picture (en réalité, l'edit peut être caché, et on voit sur l'écran la position du curseur et les modifications. En réalité j'ai un picture par ligne, pour facilité les scrolls: on enlève une ligne ou plusieurs, et on reporte les lignes de l'autre coté. Cela permet en plus de minimiser les effets de scintillement qui ne sont applicables que sur la ligne en cours. (On peut comme je l'ai fais dans un premier essai mettre une ligne de mot alpha sur les pictures. Le problème est que j'ai remarqué que l'écriture est différente sur un alpha par rapport à un picture. La méthode finale, ce sont les commandes que j'aurai a disposition qui va les définir. Je vais regardé si j'ai encore un teste valable ce dont je parle. Non finalement sue ce qui me reste , je n'ai que le déplacement sur une ligne. On voit pour un code Panoramic, la colorisation se faire en direct, comme pour l'éditeur Panoramic, et c'est tout. Donc je peux tout reprendre à zéro lorsque j'aurai la nouvelle mouture Panoramic. Pour précision: je suis partie de nouveau sur un nouvelle éditeur, après celui que je viens de faire avec une idée originale que j'ai voulu voir, et ce faisant, je me suis aperçu que grosse partie était commune pour coloriser du texte et faire comme on le fait pour un memoricht. Celà dit, il y aura des allégements au départ. Je pars avec une fonte fixe. Ensuite plutôt que de procéder par sélection comme on le fait avec Word, je procède par bloc. Je clique sur le début d'un bloc pour avoir un certain style, et je clique plus loin pour avoir un style normal ou autre. Le principe est différent, mais le résultat identique, et un allègement du fichier. Et pour le traitement pour coloriser par programme, c'est plus simple (un peu comme sur Oric I puisque je crois tu as connu la machine). Quant tu auras tout lu, tu pourras aller te coucher. EDIT je viens de relire ta question. J'ai repris un memo pour avoir les fonction cpier/coller, pour savoir où se trouve le curseur. Autrement je préférerai me servir dans ce cas d'un edit. La gestion est plus simple. |
| | | Invité Invité
| Sujet: Re: Clipboard_copy N Jeu 5 Sep 2013 - 0:08 | |
| J'ai bien fait de publié le code d'essai plus haut. J'ai récupéré un code d'hier. Je l'avais oublié celui-là. |
| | | Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Clipboard_copy N Jeu 5 Sep 2013 - 7:43 | |
| Bonjour à tous, @Jack A propos de CARET_POSITION N,P l'exemple de cette fonction, dans le manuel, n'est pas explicite car à l'exécution on ne voit pas le curseur (l'EDIT n'a pas le FOCUS) - Code:
-
rem créer un EDIT edit 1 rem afficher un texte text 1,"Bonjour" wait 1000
set_focus 1 :' donner le focus à l'édit
rem le rendre secret rem mettre le curseur entre "o" and "n" caret_position 1,2
A+ | |
| | | Jack Admin
Nombre de messages : 2381 Date d'inscription : 28/05/2007
| Sujet: Re: Clipboard_copy N Jeu 5 Sep 2013 - 20:32 | |
| @Jean-Claude: Effectivement, il faut que l'objet ait le focus pour qu'on voit le curseur. j'ai ajouté set_focus dans l'exemple de la documentation.
@cosmos70: Une version instantanée avec caret_position(N) est disponible. Elle ne fonctionne pour l'instant qu'avec des objets EDIT. | |
| | | Invité Invité
| Sujet: Re: Clipboard_copy N Jeu 5 Sep 2013 - 22:02 | |
| Bien merci. Je viens d'apporter toutes les modifications, en remplaçant memo par edit, et les corrections avec, et c'est ok ainsi, et nettement préférable.
Je vais donc pouvoir reprendre mes expérimentations sur de meilleurs bases. Bon travail. |
| | | papydall
Nombre de messages : 6996 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Clipboard_copy N Jeu 5 Sep 2013 - 23:00 | |
| Voici comment on utilise CARET_POSITION N,P et CARET_POSITION(N) - Code:
-
edit 1 : text 1,"BONJOUR" : set_focus 1 caret_position 1,0 : ' mettre le curseur sur le B wait 1000 message caret_position(1) caret_position 1,4 : ' mettre le curseur après le J wait 2000 message caret_position(1) caret_position 1,100 : ' mettre le curseur à la fin du texte wait 1000 message caret_position(1)
Remarque :P ne peut pas être négative. P = 0 --- > curseur au début du texte P = x --- > curseur après le xème caractère P = y (avec y > à la longueur du texte) --- > curseur à la fin du texte | |
| | | Froggy One
Nombre de messages : 584 Date d'inscription : 06/01/2012
| Sujet: Re Ven 6 Sep 2013 - 6:56 | |
| Bonjour à tous ! quelle joie de lire tout ça en prenant son café ! c'est vrai que de travailler directement avec cette fonction peut sacrément simplifier les choses, je pense, dans tous les programmes requérant une saisie !
Bon allez, je prépare mon cartable, l'école n'attend pas. L'émulateur de grilles codé grâce à PANORAMIC a déjà servi.
Bonne journée et merci encore ! | |
| | | Contenu sponsorisé
| Sujet: Re: Clipboard_copy N | |
| |
| | | | Clipboard_copy N | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |