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

Composants VCL Delphi Discussion :

Containeur pour un assemblage d'images


Sujet :

Composants VCL Delphi

  1. #1
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Points : 120
    Points
    120
    Par défaut Containeur pour un assemblage d'images
    Salut à tous,

    voilà, j'ai un assemblage de TImage sur un TPanel que je voudrais pouvoir exporter vers le presse papier ou mieux vers un fichier dédié...

    quelqu'un pourrait il m'indiquer un containeur pour cet assemblage qui disposerait de cette faculté ou bien une façon de faire ?

    Je procède actuellement par copie d'écran et découpage de la zone mais c'est pas le top

    merci de vos réponses

    @+
    Ce n'est pas parce qu'on pédale dans la semoule, qu'on est sûr de manger du couscous... (anonyme)

  2. #2
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Tu devrais essayer un truc dans ce goût là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    procedure CopyContainedImagesToClipBoard(Container: TWinControl);
    var
      i: Integer;
      bmp: TBitmap;
      bmpFormat: word;
      data: cardinal;
      palette: HPalette;
    begin
      bmp:= TBitmap.Create;
      bmp.Width:= Container.Width;
      bmp.Height:= Container.Height;
      try
        for i:=0 to Container.ControlCount - 1 do
          if Container.Controls[i] is TImage then
            with TImage(Container.Controls[i]) do
              if Assigned(Picture.Bitmap) then
                bmp.Canvas.Draw(Left, Top, Picture.Bitmap);
        bmp.SaveToClipboardFormat(bmpFormat, data, palette);
        ClipBoard.SetAsHandle(bmpFormat, data);
      finally
        bmp.Free;
      end;
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      CopyContainedImagesToClipBoard(GroupBox1);
    end;
    La méthode CopyContainedImagesToClipBoard (je n'ai pas trouvé de nom plus long...) énumère tous les composants TImage placés dans le conteneur (TPanel, TGroupBox, etc) et à chaque fois qu'elle en trouve un copie le dessin dans une bitmap temporaire en conservant les coordonnées originales. Le bitmap temporaire est ensuite copié dans le presse-papier, puis libéré.
    Je pense qu'en utilisant ce genre de code tu devrais arriver à tes fins.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Points : 120
    Points
    120
    Par défaut
    Salut,

    Merci pour cette solution qui fonctionne à merveille...

    J'ai juste eu à déclarer data et palette comme THandle

    Merci encore pour la qualité et la rapidité de cette réponse


    @ +
    Ce n'est pas parce qu'on pédale dans la semoule, qu'on est sûr de manger du couscous... (anonyme)

  4. #4
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Citation Envoyé par Amenofis
    J'ai juste eu à déclarer data et palette comme THandle
    Oui, la déclaration de la méthode SaveToClipboardFormat dépend des versions de Delphi.

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

Discussions similaires

  1. Assemblage d'images pour en former une seule
    Par bric129 dans le forum Images
    Réponses: 9
    Dernier message: 06/01/2010, 23h51
  2. Réponses: 2
    Dernier message: 15/03/2005, 09h13
  3. commande c++ pour le traitement d'images
    Par mateo.14 dans le forum MFC
    Réponses: 2
    Dernier message: 12/01/2005, 10h46
  4. [TP]Help pour insertion d'un image sur tp7 svp !
    Par ilym dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 21/01/2004, 21h00
  5. Une ProgressBar pour un rafraichissement d'image
    Par JakeGrafton dans le forum Composants VCL
    Réponses: 8
    Dernier message: 06/01/2004, 22h21

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