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
» Gestion d'un système client-serveur.
copie multiple clip_board Emptypar Klaus Ven 17 Mai 2024 - 12:02

» item_index(résolu)
copie multiple clip_board Emptypar jjn4 Mar 14 Mai 2024 - 17:38

» Bataille terrestre
copie multiple clip_board Emptypar jjn4 Lun 13 Mai 2024 - 13:01

» SineCube
copie multiple clip_board Emptypar Marc Sam 11 Mai 2024 - 10:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
copie multiple clip_board Emptypar Marc Sam 11 Mai 2024 - 10:22

» Philharmusique
copie multiple clip_board Emptypar jjn4 Ven 10 Mai 2024 - 11:58

» PANORAMIC V 1
copie multiple clip_board Emptypar papydall Jeu 9 Mai 2024 - 1:22

» select intégrés [résolu]
copie multiple clip_board Emptypar jjn4 Mer 8 Mai 2024 - 15:00

» number_mouse_up
copie multiple clip_board Emptypar jjn4 Mer 8 Mai 2024 - 9:59

» Aide de PANORAMIC
copie multiple clip_board Emptypar jjn4 Mer 8 Mai 2024 - 9:16

» trop de fichiers en cours
copie multiple clip_board Emptypar lepetitmarocain Mer 8 Mai 2024 - 8:43

» Je teste PANORAMIC V 1 beta 1
copie multiple clip_board Emptypar papydall Mer 8 Mai 2024 - 2:17

» bouton dans autre form que 0(résolu)
copie multiple clip_board Emptypar leclode Lun 6 Mai 2024 - 11:59

» KGF_dll - nouvelles versions
copie multiple clip_board Emptypar Klaus Lun 6 Mai 2024 - 9:41

» @Jack
copie multiple clip_board Emptypar Jack Mar 30 Avr 2024 - 18:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment :
Funko POP! Jumbo One Piece Kaido Dragon Form : ...
Voir le deal

 

 copie multiple clip_board

Aller en bas 
2 participants
AuteurMessage
Invité
Invité




copie multiple clip_board Empty
MessageSujet: copie multiple clip_board   copie multiple clip_board EmptyDim 10 Nov 2013 - 1: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 : 7095
Localisation : 77
Date d'inscription : 29/11/2007

copie multiple clip_board Empty
MessageSujet: Re: copie multiple clip_board   copie multiple clip_board EmptyDim 10 Nov 2013 - 12: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 Dim 10 Nov 2013 - 23:33, édité 1 fois
Revenir en haut Aller en bas
Invité
Invité




copie multiple clip_board Empty
MessageSujet: Re: copie multiple clip_board   copie multiple clip_board EmptyDim 10 Nov 2013 - 21: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 : 7095
Localisation : 77
Date d'inscription : 29/11/2007

copie multiple clip_board Empty
MessageSujet: Re: copie multiple clip_board   copie multiple clip_board EmptyDim 10 Nov 2013 - 22: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 Dim 10 Nov 2013 - 23:38, édité 1 fois
Revenir en haut Aller en bas
Klaus

Klaus


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

copie multiple clip_board Empty
MessageSujet: Re: copie multiple clip_board   copie multiple clip_board EmptyDim 10 Nov 2013 - 23:33

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




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

copie multiple clip_board Empty
MessageSujet: Re: copie multiple clip_board   copie multiple clip_board EmptyDim 10 Nov 2013 - 23: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
Invité
Invité




copie multiple clip_board Empty
MessageSujet: Re: copie multiple clip_board   copie multiple clip_board EmptyLun 11 Nov 2013 - 6: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

Klaus


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

copie multiple clip_board Empty
MessageSujet: Re: copie multiple clip_board   copie multiple clip_board EmptyLun 11 Nov 2013 - 8: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
http://klauspanoramic.comxa.com/index.html
JL35




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

copie multiple clip_board Empty
MessageSujet: Re: copie multiple clip_board   copie multiple clip_board EmptyLun 11 Nov 2013 - 13: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
Klaus

Klaus


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

copie multiple clip_board Empty
MessageSujet: Re: copie multiple clip_board   copie multiple clip_board EmptyLun 11 Nov 2013 - 16:48

Oui. Bonne idée. Je vais inclure cela dans la prochaine version de KGF.dll.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

copie multiple clip_board Empty
MessageSujet: Re: copie multiple clip_board   copie multiple clip_board EmptyLun 11 Nov 2013 - 17: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
Klaus

Klaus


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

copie multiple clip_board Empty
MessageSujet: Re: copie multiple clip_board   copie multiple clip_board EmptyLun 11 Nov 2013 - 18: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
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

copie multiple clip_board Empty
MessageSujet: Re: copie multiple clip_board   copie multiple clip_board EmptyLun 11 Nov 2013 - 18:36

Ca y est - la nouvelle version avec cette fonction est en ligne !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

copie multiple clip_board Empty
MessageSujet: Re: copie multiple clip_board   copie multiple clip_board EmptyLun 11 Nov 2013 - 19: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
JL35




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

copie multiple clip_board Empty
MessageSujet: Re: copie multiple clip_board   copie multiple clip_board EmptyLun 11 Nov 2013 - 22: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
Klaus

Klaus


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

copie multiple clip_board Empty
MessageSujet: Re: copie multiple clip_board   copie multiple clip_board EmptyLun 11 Nov 2013 - 23:23

C'est ça ! Bien joué. Heureux d'avoir pu rendre service.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

copie multiple clip_board Empty
MessageSujet: Re: copie multiple clip_board   copie multiple clip_board EmptyMar 12 Nov 2013 - 13: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
Contenu sponsorisé





copie multiple clip_board Empty
MessageSujet: Re: copie multiple clip_board   copie multiple clip_board Empty

Revenir en haut Aller en bas
 
copie multiple clip_board
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Lanceur multiple pour un programme découpé.
» multiple timers sans plantage : ruse de sioux!!!
» Dlls compilees nouvelle version avec gestion clipboard texte
» J'ai copié sur Bignono
» MULTICOPIES - un presse papier multiple

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: