IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Copier tout ce que contient un TImage dans le presse papier de windows


Sujet :

Delphi

  1. #1
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut Copier tout ce que contient un TImage dans le presse papier de windows
    Bonsoir,

    Sur le TImage qui se nomme BitmapDessin, je créé d'autres TImages qui sont reliés par des lignes (tracés sur le canvas du BitmapDessin).

    Ce que je souhaite faire, c'est de faire une sorte de ScreenShoot du TImage afin de pouvoir le collé dans paint ou dans un autre programme du genre Word etc etc.

    Je ne sais pas comment dire , voilà tu prends une photo uniquement de BitmapDessin et tu le mets dans le presse papier!

    Si quelqu'un à une explication ou un bout de code ...
    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Bonjour,

    J'ai cherché encore ce matin et cette après midi pour ce problème, et j'ai trouvé!

    Je vous mets le code que j'ai utilisé, bien que je n'ai pas encore tout compris concernant le Handle, BitBlt,ReleaseDC(GetDesktopWindow,HandleDCBureau), etc ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TFPrincipale.Copier1Click(Sender: TObject);
    var HandleDCBureau : HDC;
    begin
    HandleDCBureau:=GetDC(GetDesktopWindow);
    ImageBureau.Bitmap.Width := BitmapDessin.Width-5;// ImageBureau est un TPicture  qui est créé dès le lancement de l'application
    ImageBureau.Bitmap.Height := BitmapDessin.Height-5;// idem pour la hauteur
    BitBlt(ImageBureau.Bitmap.Canvas.Handle,0,0,BitmapDessin.Width,BitmapDessin.Height,
    HandleDCBureau,BitmapDessin.ClientOrigin.X,BitmapDessin.ClientOrigin.Y,SrcCopy);//recopie l'image du desktop vers ImageBureau
    ReleaseDC(GetDesktopWindow,HandleDCBureau);
    Clipboard.Assign(ImageBureau);
    end;
    Je vais maintenant chercher le fonctionnement de tout cela car pour moi, tout ces trucs sont nouveaux !

    @+

  3. #3
    Membre averti Avatar de Bejaia-In
    Inscrit en
    Avril 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 365
    Points : 392
    Points
    392
    Par défaut
    Citation Envoyé par Aide Delphi7
    Toute image graphique, y compris le contenu d'un contrôle image, peut être copiée dans le presse-papiers. Une fois placée dans le presse-papiers, l'image est disponible pour toutes les applications.

    Pour copier une image dans le presse-papiers, affectez l'image à l'objet Clipboard en utilisant la méthode Assign.

    Le code suivant montre comment copier dans le presse-papiers l'image d'un contrôle image nommé Image en réponse au choix d'un élément de menu Edition|Copier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.Copy1Click(Sender: TObject);
    begin
      Clipboard.Assign(Image.Picture)
    end.
    ....................................................................
    Aidez-vous... Dieu vous aideras et nous aussi..
    ....................................................................

  4. #4
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Merci pour ta réponse, ca je sais le faire!

    Je problème posé, c'est que sur mon TImage de base, je venais créer de nouveau TImage... donc, si je veux avoir une avoir un ScreenShot de mon Timage de base, contenant aussi les Timage créés par la suite, je dois passer par là (car le canvas du TImage de Base restera toujours vierge, sauf lors de dessin dans certains cas ...).


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2000] Copier le *texte* de la cellule active dans le presse-papier
    Par Qatbot dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/11/2012, 16h11
  2. Réponses: 3
    Dernier message: 30/08/2011, 16h56
  3. Réponses: 2
    Dernier message: 22/08/2009, 17h09
  4. Réponses: 2
    Dernier message: 23/10/2007, 14h53
  5. Réponses: 2
    Dernier message: 02/06/2007, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo