FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» KGF_dll - nouvelles versions
par Yannick Aujourd'hui à 21:30

» Synedit Parameters
par Yannick Aujourd'hui à 21:26

» Un bug avec USER_EVENT ?
par Yannick Aujourd'hui à 21:16

» Concours de Morpions
par Froggy One Aujourd'hui à 17:30

» Bienvenue à Irikte
par papydall Aujourd'hui à 14:59

» Comment changer le graphisme d’un menu
par Yannick Aujourd'hui à 12:53

» LIBRARY COMMAND FUNCTION
par Jean Claude Aujourd'hui à 11:38

» OBJECT_PARENT NE FONCTIONNE PLUS ?! (RESOLU)
par Jack Aujourd'hui à 10:40

» Menu personalisé avec icones et menu contextuel
par Yannick Aujourd'hui à 10:10

» Doublon - Désolé !
par Laurent (Minibug) Aujourd'hui à 9:55

» Mac OS X sierra
par Irikte Aujourd'hui à 8:01

» Recherche de traductions de mots (@Klaus).
par Pedro Alvarez Hier à 18:34

» Problème avec SendStringAsText.
par Pedro Alvarez Hier à 18:32

» Version instantanée V 0.9.28i10 du 24/06/2017
par Yannick Hier à 16:19

» Mais qui a le focus ?
par Jack Hier à 14:35

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
CalendrierCalendrier

Partagez | 
 

 copie multiple clip_board

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Invité
Invité



MessageSujet: 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
Revenir en haut Aller en bas
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Invité
Invité



MessageSujet: 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.
Revenir en haut Aller en bas
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 9998
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: copie multiple clip_board   Lun 11 Nov 2013 - 0:33

En Juillet 2012, j'avais fait quelque chose de similaire. Cest posté ici.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html En ligne
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Invité
Invité



MessageSujet: 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 Very Happy

Revenir en haut Aller en bas
Klaus

avatar

Nombre de messages : 9998
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html En ligne
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: 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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 9998
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html En ligne
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: 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 Very Happy )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 9998
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html En ligne
Klaus

avatar

Nombre de messages : 9998
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: copie multiple clip_board   Lun 11 Nov 2013 - 19:36

Ca y est - la nouvelle version avec cette fonction est en ligne !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html En ligne
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: 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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: 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)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 9998
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: copie multiple clip_board   Mar 12 Nov 2013 - 0:23

C'est ça ! Bien joué. Heureux d'avoir pu rendre service.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html En ligne
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: 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
' ==============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: copie multiple clip_board   

Revenir en haut Aller en bas
 
copie multiple clip_board
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» faire une copie du fichier de la license de SZ ?
» Problème de copie image sprite
» Constitution d'une unité multiple dans TC Gold
» Compte à rebours multiple
» Comment enlever le bouton : Citation multiple ?

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