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 |
|
|
| copie multiple clip_board | |
| | Auteur | Message |
---|
Invité Invité
| Sujet: copie multiple clip_board Dim 10 Nov 2013 - 2:19 | |
| J'étais parti à rechercher un programme de clipboard pour avoir plusieurs mémoires de presse papier, pour reprendre complètement un programme, sur le web, et d'un coup, je me suis dis pourquoi pas le faire en Panoramic. Je ne me suis pas cassé la tête, surtout pour la sauvegarde. Programmation rapide pour être utilisée tout de suite. - Code:
-
' clip_board multiple width 0,270:height 0,screen_y:left 0,screen_x-260 : border_small 0 label modifier,lister,choix ,sauve , lire , clear:dim a$ , a% main_menu 10 sub_menu 11 :parent 11,10:caption 11,"modifier" :on_click 11,modifier sub_menu 12:parent 12,10 :caption 12,"lister" :on_click 12,lister sub_menu 13:parent 13,10 :caption 13,"fichier" sub_menu 14:parent 14,13 :caption 14,"sauve" :on_click 14,sauve sub_menu 17:parent 17,13 :caption 17,"lire" :on_click 17,lire sub_menu 16:parent 16,13 :caption 16,"clear" :on_click 16,clear
edit 15:width 15,250:font_size 15,10:color 15,255,255,230 memo 20:width 20,250:font_size 20,10:font_bold 20:color 20,240,201,83 :top 20,30:height 20,height(0)-120 : bar_horizontal 20 wait 1000 list 30:width 30,250:font_size 30,10:font_bold 30:color 30, 190,222,238:top 30,30:height 30,height(20):hide 30 on_click 30,choix gosub lire end modifier: hide 30:show 20 return
lister: hide 20:show 30 if count(20) > 0 clear 30 for a%=1 to count(20):item_add 30,item_read$(20,a%):next a% end_if return
choix: a$ = item_index$(30) clipboard_string_copy a$ text 15,a$ return
sauve: file_save 20,"clipboard.txt":return lire: if file_exists("clipboard.txt") = 1 then file_load 20,"clipboard.txt" return
clear: clear 20:clear 30:return Si quelqu'un a une meilleure idée, il n'y a pas de problème. On rempli un memo orange. On liste en cliquant sur lister, on modifie en cliquant sur modifer.etc... En cliquant sur un item, celui-ci se recopie dans l'edit, et est envoyé dans le presse-papier. Pour toute une série de variables pour de portion de codes, c'est bien suffisant |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: copie multiple clip_board Dim 10 Nov 2013 - 13:59 | |
| Idée intéressante, il est vrai qu'on a parfois besoin d'un presse-papier multiple. Une variante (je ne me suis pas cassé la tête non plus !): - Code:
-
' Clipboard multiple LABEL Clicbut DIM mx%, wc%, hc%, hb%, i%, j%, y% mx% = 5: ' nb de cases (à moduler)
WIDTH 0,300 wc% = WIDTH(0)-16: COLOR 0,255,0,0: BORDER_SMALL 0 CAPTION 0," CLIPBOARD MULTIPLE" hc% = 80 y% = 0: hb% = 20 FOR i% = 1 TO mx% j% = i%*10 CONTAINER j%: TOP j%,y%: LEFT j%,0: WIDTH j%,wc%: HEIGHT j%,hc% COLOR j%,0,255,255 BUTTON j%+1: PARENT j%+1,j%: LEFT j%+1,5: HEIGHT j%+1,hb%: CAPTION j%+1,"Coller" BUTTON j%+2: PARENT j%+2,j%: LEFT j%+2,85: HEIGHT j%+2,hb%: CAPTION j%+2,"Copier" BUTTON j%+3: PARENT j%+3,j%: LEFT j%+3,165: HEIGHT j%+3,hb%: CAPTION j%+3,"Raz" ON_CLICK j%+1,Clicbut: ON_CLICK j%+2,Clicbut: ON_CLICK j%+3,Clicbut ALPHA j%+4: PARENT j%+4,j%: LEFT j%+4,250: COLOR j%+4,255,255,0 FONT_SIZE j%+4,12: FONT_BOLD j%+4: CAPTION j%+4," "+STR$(i%)+" " MEMO j%+5: PARENT j%+5,j%: TOP j%+5,TOP(j%+1)+20: LEFT j%+5,4 WIDTH j%+5,WIDTH(j%)-8: HEIGHT j%+5,55: COLOR j%+5,255,255,190 y%=y%+hc%+5 NEXT i% HEIGHT 0,y%+34 END ' ============================================================================== Clicbut: i% = NUMBER_CLICK j% = 10*INT(i%/10): ' container du bouton cliqué (=1 à mx%) IF i% = j%+1 ' Coller CLEAR j%+5: CLIPBOARD_PASTE j%+5 ELSE IF i% = j%+2 ' Copier CLIPBOARD_COPY j%+5 ELSE CLEAR j%+5 END_IF END_IF RETURN ' ============================================================================== Une autre variante, avec empilage et décalage à chaque Coller: - Code:
-
' Clipboard multiple LABEL Clicbut, Coller, Vmemo DIM plx%(10), mx%, wc%, hc%, hb%, i%, j%, k%, y% mx% = 5: ' nombre maxi d'éléments stockés (modulable)
WIDTH 0,240 wc% = WIDTH(0)-22: COLOR 0,255,0,0: BORDER_SMALL 0 CAPTION 0," CLIPBOARD MULTIPLE" hc% = 80 y% = 5: hb% = 20 FOR i% = 1 TO mx% j% = 10*i% CONTAINER j%: TOP j%,y%: LEFT j%,3: WIDTH j%,wc%: HEIGHT j%,hc% COLOR j%,0,255,255 BUTTON j%+1: PARENT j%+1,j%: LEFT j%+1,5: HEIGHT j%+1,hb%: WIDTH j%+1,50 CAPTION j%+1,"Copier" BUTTON j%+2: PARENT j%+2,j%: LEFT j%+2,55: HEIGHT j%+2,hb%: CAPTION j%+2,"Raz" WIDTH j%+2,40 IF i% = 1 BUTTON j%+3: PARENT j%+3,j%: LEFT j%+3,100: WIDTH j%+3,70: HEIGHT j%+3,hb% CAPTION j%+3,"Coller": ON_CLICK j%+3,Coller END_IF ON_CLICK j%+1,Clicbut: ON_CLICK j%+2,Clicbut ALPHA j%+4: PARENT j%+4,j%: LEFT j%+4,175: COLOR j%+4,255,255,0 FONT_SIZE j%+4,12: FONT_BOLD j%+4: CAPTION j%+4," "+STR$(1-j%/10)+" " MEMO j%+5: PARENT j%+5,j%: TOP j%+5,TOP(j%+2)+20: LEFT j%+5,4 WIDTH j%+5,600: HEIGHT j%+5,55: COLOR j%+5,255,255,190 FONT_NAME j%+5,"Calibri": ON_CLICK j%+5,Vmemo y%=y%+hc%+4 NEXT i% HEIGHT 0,y%+34 FORM 500: TOP 500,100: WIDTH 500,500: HEIGHT 500,500: BORDER_SMALL 500: HIDE 500 MEMO 501: PARENT 501,500: FULL_SPACE 501: COLOR 501,255,255,190 FONT_NAME 501,"Calibri" END ' ============================================================================== Clicbut: i% = NUMBER_CLICK j% = 10*INT(i%/10): ' container du bouton cliqué (=10 à 10*mx%) IF i% = j%+1 k% = 0 FOR i% = 1 TO COUNT(j%+5) k%=k%+LEN(ITEM_READ$(j%+5,i%)) NEXT i% k% = k% + 2*(COUNT(j%+5)-1): ' ajout des RC/AL SELECT_TEXT j%+5,1,k% CLIPBOARD_COPY j%+5: ' Copier le memo cible dans le clipboard ELSE CLEAR j%+5: ' Raz END_IF RETURN ' ============================================================================== Coller: ' Le 'coller' se fait systématiquement dans le memo de tête ' décalage des contenus d'un memo vers le bas avant collage FOR j% = 10*mx% TO 20 STEP -10 i% = j%+5: CLEAR i% IF COUNT(i%-10)>0 FOR k% = 1 TO COUNT(i%-10) ITEM_ADD i%,ITEM_READ$(i%-10,k%) NEXT k% END_IF NEXT j% ' nouveau contenu dans le memo de tête (plus récent) CLEAR 15: CLIPBOARD_PASTE 15 RETURN ' ============================================================================== Vmemo: ' Voir le contenu du memo cliqué CLEAR 501 j% = NUMBER_CLICK IF COUNT(j%) > 0 FOR i% = 1 TO COUNT(j%) ITEM_ADD 501,ITEM_READ$(j%,i%) NEXT i% END_IF CAPTION 500," CONTENU DE L'ÉLÉMENT " + STR$(1-(j%-5)/10) SHOW 500 RETURN
Une possibilité qui serait intéressante et qui je crois n'existe pas, ce serait de pouvoir forcer par programme dans un memo l'affichage des premières lignes, ou à partir d'une ligne donnée (au lieu des dernières systématiquement).
Dernière édition par JL35 le Lun 11 Nov 2013 - 0:33, édité 1 fois | |
| | | Invité Invité
| Sujet: Re: copie multiple clip_board Dim 10 Nov 2013 - 22:28 | |
| Ok, je n'avais pas fait gaffe à ta réaction.
Oui, c'est pas mal non plus. Il n'y a plus qu'à faire le choix de son propre besoin. On se casse parfois la tête à trouver une solution sur internet, alors qu'on peut le faire soit même, et à sa convenance. |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: copie multiple clip_board Dim 10 Nov 2013 - 23:00 | |
| Tu as raison, et en plus on se fait plaisir !
J'ai édité mon 2ème exemple ci-dessus: en effet, j'avais oublié que le CLIPBOARD_COPY d'un MEMO (pour récupérer les données enregistrées) ne copie que les lignes sélectionnées dudit memo, sinon il ne se passe rien. Et donc il faut sélectionner l'intégralité du memo, heureusement on peut le faire par programme: instruction SELECT_TEXT n,p,c et il suffit donc de compter le nombre de caractères de ce memo.
Dernière édition par JL35 le Lun 11 Nov 2013 - 0:38, édité 1 fois | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: copie multiple clip_board Lun 11 Nov 2013 - 0:33 | |
| En Juillet 2012, j'avais fait quelque chose de similaire. Cest posté ici. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: copie multiple clip_board Lun 11 Nov 2013 - 0:41 | |
| Bonsoir Klaus, on s'est croisés (j'ai édité, il y avait quelque chose qui clochait dans mon exemple), il me semblait bien qu'il y avait déjà eu quelque chose du même genre. Dont acte. | |
| | | Invité Invité
| Sujet: Re: copie multiple clip_board Lun 11 Nov 2013 - 7:32 | |
| Bonjour, Eh bien Klaus, je ne connaissais pas l’existence de ce programme. Il faut aussi dire que je ne peux pas tout essayé. Ce qui m'a surtout plus dans ce programme, c'est l'utilisation de "confetti". Clipboard et presse-papier sont des mots que j'aime pas trop employé. Le premier car anglais, et le deuxième donne l'impression qu'on a affaire à un objet alors que c'est une action. Et confetti c'est original. Notre Deutsh-French a des idée |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: copie multiple clip_board Lun 11 Nov 2013 - 9:46 | |
| Oui, j'avais trouvé sympa de nommer cela "confetti". C'est surtout parce qu'il s'agit de morceaux de code, donc réellement des confettis d'un code décomposé en morceaux.
Et on peut y mettre des images aussi, ce qui est une extension du concept... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: copie multiple clip_board Lun 11 Nov 2013 - 14:40 | |
| A ce propos, je me pose une question: y a t'il un moyen de savoir si ce qui est dans le clipboard est un texte ou une image ? dans un cas il faudra faire un Clipboard_Paste sur un Memo, et dans l'autre sur un Image (ou un Picture), les deux étant incompatibles et provoquant une erreur Panoramic si le genre n'est pas respecté...?
Cette fonction existe je crois en Delphi (Clipboard.HasFormat()), donc c'est possible... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: copie multiple clip_board Lun 11 Nov 2013 - 17:48 | |
| Oui. Bonne idée. Je vais inclure cela dans la prochaine version de KGF.dll. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: copie multiple clip_board Lun 11 Nov 2013 - 18:04 | |
| Voilà qui sera bien intéressant pour (entre autres) l'application dont il est question ici ! Merci Klaus ! J'ai vu qu'il y avait des distinctions entre Text, Bitmap, Metafile, Picture et Object... ( et j'avais bien une petite idée derrière la tête quand j'ai parlé de Delphi ) | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: copie multiple clip_board Lun 11 Nov 2013 - 19:00 | |
| La fonction est faite. Je suis en train de peaufiner la doc, et ce sera distribué toute à l'heure. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: copie multiple clip_board Lun 11 Nov 2013 - 19:36 | |
| Ca y est - la nouvelle version avec cette fonction est en ligne ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: copie multiple clip_board Lun 11 Nov 2013 - 20:51 | |
| Mince alors ! à peine le temps de dîner et c'est fait ! Je vais voir ça de suite, merci Klaus !
C'est dans la boîte, y'a plus qu'à expérimenter... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: copie multiple clip_board Lun 11 Nov 2013 - 23:17 | |
| Voilà donc l'utilisation de cette nouvelle fonction: on peut empiler et rappeler indifféremment du texte ou des images depuis le clipboard: - Code:
-
' Clipboard multiple LABEL Clicbut, Coller, Vmemo DIM typ%(10), w%(10), h%(10), mx%, wc%, hc%, hb%, i%, j%, k%, y%, p%, res%, d$
mx% = 5: ' nombre maxi d'éléments stockés (modulable)
WIDTH 0,240 wc% = WIDTH(0)-22: COLOR 0,255,0,0: BORDER_SMALL 0 CAPTION 0," CLIPBOARD MULTIPLE" PICTURE 1: HIDE 1: 2D_TARGET_IS 1: ' picture de manoeuvre hc% = 80 y% = 5: hb% = 20 FOR i% = 1 TO mx% j% = 10*i% CONTAINER j%: TOP j%,y%: LEFT j%,3: WIDTH j%,wc%: HEIGHT j%,hc% COLOR j%,0,255,255 BUTTON j%+1: PARENT j%+1,j%: LEFT j%+1,5: HEIGHT j%+1,hb%: WIDTH j%+1,50 CAPTION j%+1,"Copier" BUTTON j%+2: PARENT j%+2,j%: LEFT j%+2,55: HEIGHT j%+2,hb%: CAPTION j%+2,"Raz" WIDTH j%+2,40 IF i% = 1 BUTTON j%+3: PARENT j%+3,j%: LEFT j%+3,100: WIDTH j%+3,70: HEIGHT j%+3,hb% CAPTION j%+3,"Coller": ON_CLICK j%+3,Coller END_IF ON_CLICK j%+1,Clicbut: ON_CLICK j%+2,Clicbut ALPHA j%+4: PARENT j%+4,j%: LEFT j%+4,175: COLOR j%+4,255,255,0 FONT_SIZE j%+4,12: FONT_BOLD j%+4: CAPTION j%+4," "+STR$(1-j%/10)+" " MEMO j%+5: PARENT j%+5,j%: TOP j%+5,TOP(j%+2)+20: LEFT j%+5,4 WIDTH j%+5,600: HEIGHT j%+5,55: COLOR j%+5,255,255,190 FONT_NAME j%+5,"Calibri": ON_CLICK j%+5,Vmemo IMAGE j%+6 y%=y%+hc%+4 NEXT i% HEIGHT 0,y%+34 FORM 500: TOP 500,100: WIDTH 500,500: HEIGHT 500,500: BORDER_SMALL 500: HIDE 500 MEMO 501: PARENT 501,500: FULL_SPACE 501: COLOR 501,255,255,190 FONT_NAME 501,"Calibri"
DLL_ON "C:\PANORAMIC\KLAUS\DLLs\KGF.dll": ' <<<***** CHEMIN À AJUSTER ***** END ' ============================================================================== Clicbut: i% = NUMBER_CLICK p% = INT(i%/10) j% = 10*p%: ' container du bouton cliqué (=10 à 10*mx%) IF i% = j%+1: ' Copier IF typ%(p%) = 2: ' c'est une image WIDTH 1,w%(p%): HEIGHT 1,h%(p%) 2D_IMAGE_PASTE j%+6,0,0 CLIPBOARD_COPY 1 ELSE IF COUNT(j%+5) > 0 k% = 0 FOR i% = 1 TO COUNT(j%+5) k%=k%+LEN(ITEM_READ$(j%+5,i%)) NEXT i% k% = k% + 2*(COUNT(j%+5)-1): ' ajout des RC/AL SELECT_TEXT j%+5,1,k% END_IF CLIPBOARD_COPY j%+5: ' Copier le memo cible dans le clipboard END_IF ELSE CLEAR j%+5: ' Raz END_IF RETURN ' ============================================================================== Coller: ' Le 'coller' se fait systématiquement dans le memo de tête ' décalage des contenus d'un memo vers le bas avant collage FOR p% = mx% TO 2 STEP -1 j% = 10*p%: ' container IF typ%(p%-1) = 2: ' c'est une image i% = j%+6 w%(p%) = w%(p%-1): h%(p%) = h%(p%-1) WIDTH 1,w%(p%): HEIGHT 1,h%(p%) 2D_IMAGE_PASTE i%-10,0,0: ' -> picture de manoeuvre 2D_IMAGE_COPY i%,0,0,w%(p%)-1,h%(p%)-1 CLEAR j%+5: d$ = STR$(w%(p%))+"x"+STR$(h%(p%)) ITEM_ADD j%+5," *** Image "+d$+" ***" ELSE i% = j%+5: CLEAR i% IF COUNT(i%-10)>0 FOR k% = 1 TO COUNT(i%-10) ITEM_ADD i%,ITEM_READ$(i%-10,k%) NEXT k% END_IF END_IF typ%(p%) = typ%(p%-1): ' texte ou image NEXT p% ' nouveau contenu dans le memo de tête (plus récent) typ%(1) = DLL_CALL0("GetClipboardFormat") IF typ%(1) = 2: ' c'est une image w%(1) = DLL_CALL0("GetClipboardPictureWidth") h%(1) = DLL_CALL0("GetClipboardPictureHeight") WIDTH 1,w%(1): HEIGHT 1,h%(1): CLIPBOARD_PASTE 1 ' clipboard dans IMAGE 16 2D_IMAGE_COPY 16,0,0,w%(1)-1,h%(1)-1 CLEAR 15: d$ = STR$(w%(1))+"x"+STR$(h%(1)) ITEM_ADD 15," *** Image "+d$+" ***" ELSE ' c'est du texte CLEAR 15: CLIPBOARD_PASTE 15 END_IF RETURN ' ============================================================================== Vmemo: ' Voir le contenu du memo cliqué (cas texte seulement, cas image non traité) CLEAR 501 j% = NUMBER_CLICK IF COUNT(j%) > 0 FOR i% = 1 TO COUNT(j%) ITEM_ADD 501,ITEM_READ$(j%,i%) NEXT i% END_IF CAPTION 500," CONTENU DE L'ÉLÉMENT " + STR$(1-(j%-5)/10) SHOW 500 RETURN
Il y a un chemin à ajuster, celui de KGF.dll (ligne 39) | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: copie multiple clip_board Mar 12 Nov 2013 - 0:23 | |
| C'est ça ! Bien joué. Heureux d'avoir pu rendre service. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: copie multiple clip_board Mar 12 Nov 2013 - 14:40 | |
| Et moi heureux d'avoir ce petit outil bien pratique. J'ai ajouté l'aperçu des images en plus du texte: il suffit donc de cliquer sur le corps d'un article mémorisé pour avoir un aperçu de son contenu, texte ou image (j'ai utilisé une autre fonction de KGF.dll: le redimensionnement d'une image du clipboard), merci à toi Klaus. Voici: - Code:
-
' Clipboard multiple (sur une idée de cosmos) LABEL Clicbut, Coller, Varticle DIM typ%(10), w%(10), h%(10), mx%, wc%, hc%, hb%, i%, j%, k%, y%, p%, res%, d$ DIM wp%, hp%, wmax%, hmax%, kgf$ ' =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* kgf$ = "C:\PANORAMIC\KLAUS\DLLs\KGF.dll": ' <<< ******* CHEMIN À AJUSTER ******* ' =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
mx% = 5: ' nombre maxi d'éléments stockés (modulable)
WIDTH 0,240 wc% = WIDTH(0)-22: COLOR 0,255,0,0: BORDER_SMALL 0 CAPTION 0," CLIPBOARD MULTIPLE" PICTURE 1: HIDE 1: 2D_TARGET_IS 1: ' picture de manoeuvre hc% = 80 y% = 5: hb% = 20 FOR p% = 1 TO mx% j% = 10*p% CONTAINER j%: TOP j%,y%: LEFT j%,3: WIDTH j%,wc%: HEIGHT j%,hc% COLOR j%,0,255,255 BUTTON j%+1: PARENT j%+1,j%: LEFT j%+1,5: HEIGHT j%+1,hb%: WIDTH j%+1,50 CAPTION j%+1,"Copier" BUTTON j%+2: PARENT j%+2,j%: LEFT j%+2,55: HEIGHT j%+2,hb%: CAPTION j%+2,"Raz" WIDTH j%+2,40 IF p% = 1 BUTTON j%+3: PARENT j%+3,j%: LEFT j%+3,100: WIDTH j%+3,70: HEIGHT j%+3,hb% CAPTION j%+3,"Coller": ON_CLICK j%+3,Coller END_IF ON_CLICK j%+1,Clicbut: ON_CLICK j%+2,Clicbut ALPHA j%+4: PARENT j%+4,j%: LEFT j%+4,175: COLOR j%+4,255,255,0 FONT_SIZE j%+4,12: FONT_BOLD j%+4: CAPTION j%+4," "+STR$(1-j%/10)+" " MEMO j%+5: PARENT j%+5,j%: TOP j%+5,TOP(j%+2)+20: LEFT j%+5,4 WIDTH j%+5,600: HEIGHT j%+5,55: COLOR j%+5,255,255,190 FONT_NAME j%+5,"Calibri": ON_CLICK j%+5,Varticle IMAGE j%+6 typ%(p%) = 0 y%=y%+hc%+4 NEXT p% HEIGHT 0,y%+34 ' Pour aperçu des articles: FORM 500: TOP 500,100: WIDTH 500,500: HEIGHT 500,500: BORDER_SMALL 500: HIDE 500 wmax% = WIDTH(500)-16: hmax% = HEIGHT(500)-34 MEMO 501: PARENT 501,500: FULL_SPACE 501: COLOR 501,255,255,190 FONT_NAME 501,"Calibri": ' aperçu des textes PICTURE 502: PARENT 502,500: FULL_SPACE 502: HIDE 502: ' aperçu des images
DLL_ON kgf$ END ' ============================================================================== Clicbut: i% = NUMBER_CLICK p% = INT(i%/10) j% = 10*p%: ' container du bouton cliqué (=10 à 10*mx%) IF i% = j%+1: ' Copier IF typ%(p%) = 2: ' c'est une image WIDTH 1,w%(p%): HEIGHT 1,h%(p%) 2D_IMAGE_PASTE j%+6,0,0 CLIPBOARD_COPY 1 ELSE IF COUNT(j%+5) > 0 k% = 0 FOR i% = 1 TO COUNT(j%+5) k%=k%+LEN(ITEM_READ$(j%+5,i%)) NEXT i% k% = k% + 2*(COUNT(j%+5)-1): ' ajout des RC/AL SELECT_TEXT j%+5,1,k% END_IF CLIPBOARD_COPY j%+5: ' Copier le memo cible dans le clipboard END_IF ELSE CLEAR j%+5: ' Raz
END_IF RETURN ' ============================================================================== Coller: ' Le 'coller' se fait systématiquement dans le memo de tête ' décalage des contenus d'un memo vers le bas avant collage FOR p% = mx% TO 2 STEP -1 j% = 10*p%: ' container IF typ%(p%-1) = 2: ' c'est une image i% = j%+6 w%(p%) = w%(p%-1): h%(p%) = h%(p%-1) WIDTH 1,w%(p%): HEIGHT 1,h%(p%) 2D_IMAGE_PASTE i%-10,0,0: ' -> picture de manoeuvre 2D_IMAGE_COPY i%,0,0,w%(p%)-1,h%(p%)-1 CLEAR j%+5: d$ = STR$(w%(p%))+"x"+STR$(h%(p%)) ITEM_ADD j%+5," *** Image "+d$+" ***" ELSE i% = j%+5: CLEAR i% IF COUNT(i%-10)>0 FOR k% = 1 TO COUNT(i%-10) ITEM_ADD i%,ITEM_READ$(i%-10,k%) NEXT k% END_IF END_IF typ%(p%) = typ%(p%-1): ' texte ou image NEXT p% ' nouveau contenu dans le memo de tête (plus récent) typ%(1) = DLL_CALL0("GetClipboardFormat") IF typ%(1) = 2: ' c'est une image w%(1) = DLL_CALL0("GetClipboardPictureWidth") h%(1) = DLL_CALL0("GetClipboardPictureHeight") WIDTH 1,w%(1): HEIGHT 1,h%(1): CLIPBOARD_PASTE 1 ' clipboard dans IMAGE 16 2D_IMAGE_COPY 16,0,0,w%(1)-1,h%(1)-1 CLEAR 15: d$ = STR$(w%(1))+"x"+STR$(h%(1)) ITEM_ADD 15," *** Image "+d$+" ***" ELSE ' c'est du texte CLEAR 15: CLIPBOARD_PASTE 15 END_IF RETURN ' ============================================================================== Varticle: ' Voir le contenu de l'article cliqué j% = NUMBER_CLICK p% = (j%-5)/10: ' article IF typ%(p%) = 0 THEN RETURN: ' article vide IF typ%(p%) = 2: ' c'est une image HIDE 501: SHOW 502 2D_TARGET_IS 502: CLS i% = w%(p%): j% = h%(p%) WIDTH 1,i%: HEIGHT 1,j% 2D_TARGET_IS 1: 2D_IMAGE_PASTE p%*10+6,0,0: CLIPBOARD_COPY 1 res% = DLL_CALL2("ResizePicture",i%,j%) wp% = wmax%: hp% = wp%*j%/i% IF hp%>hmax% THEN hp% = hmax%: wp% = hp%*i%/j% WIDTH 502,wp%: HEIGHT 502,hp%: CLIPBOARD_PASTE 502 ELSE CLEAR 501: HIDE 502: SHOW 501: ' texte WIDTH 501,wmax%: HEIGHT 501,hmax% IF COUNT(j%) > 0 FOR i% = 1 TO COUNT(j%) ITEM_ADD 501,ITEM_READ$(j%,i%) NEXT i% END_IF END_IF CAPTION 500," CONTENU DE L'ÉLÉMENT " + STR$(-1*(p%-1)) SHOW 500 RETURN ' ==============================================================================
| |
| | | Contenu sponsorisé
| Sujet: Re: copie multiple clip_board | |
| |
| | | | copie multiple clip_board | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |