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

Langage Delphi Discussion :

Problème d'impression avec un TImage


Sujet :

Langage Delphi

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 34
    Par défaut Problème d'impression avec un TImage
    Bonjour à tous,

    Jje développe une application pour récupérer les extensions présentes sur l'ordinateur. Je souhaite récupérer chaque extension et son image. J'ai créé le code suivant pour la création dynamique sur TScrollBox :

    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
     
     
      ...
      with TImage.Create(Self) do
      begin
         Parent   := ScrollBox;
         Name     := 'IconeType' + IntToStr(Co);
         Top      := PosTop;
         Left     := PosLeftI + 60;
         Width    := 40;
         Height   := 40;
         AutoSize := True;
         Visible  := True;
         //Recherche de l'image du fichier
         StrpCopy(Fichier, Prog);
         H := ExtractIcon(handle, Fichier, 0);
         Picture.Icon.ReleaseHandle;
         Picture.Icon.Handle := H;
      end; //TImage.Create(Self) do
    Le résultat est correct : chaque image de fichier est affichée dans le ScrollBox. Voici maintenant la procédure que j'ai créé pour imprimer dans une boucle pour lire tous les composants TImages du ScrllBox parent :

    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
     
     
    var
      ...
      Zone : TRect;
      ...
     
    begin
      Try
        with Printer do
        begin
           BeginDoc;
           ....
           Zone := Rect(20, 
                             PosLigne, 
                             TImage(Components[i]).Picture.Bitmap.Width + 50                         ,TImage(Components[i]).picture.Width + 50);
            PrintBitmap(Canvas, 
                            Zone, 
                            TImage(Components[i]).Picture.Bitmap);
            ...
           end;
        end;
    Voici la procédure PrintBitmap :

    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
    30
    31
    32
    33
    34
    35
     
     
    {______________________________________________________________}
    procedure TForm1.PrintBitmap(Canvas: TCanvas; DestRect: TRect; Bitmap: TBitmap);
     
    var
      Header, Bits: Pointer;
      HeaderSize: DWORD;
      BitsSize: DWORD;
     
    begin
      GetDIBSizes(Bitmap.Handle, HeaderSize, BitsSize);
      Header := AllocMem(HeaderSize);
      Bits   := AllocMem(BitsSize);
      Try
        GetDIB(Bitmap.Handle, Bitmap.Palette, Header^, Bits^);
        StretchDIBits(Canvas.Handle,
                      DestRect.Left,
                      DestRect.Top,
                      DestRect.Right,
                      DestRect.Bottom,
                      0,
                      0,
                      Bitmap.Width,
                      Bitmap.Height,
                      Bits,
                      TBitmapInfo(Header^),
                      DIB_RGB_COLORS, SRCCOPY);
      Finally
        FreeMem(Header, HeaderSize);
        FreeMem(Bits, BitsSize);
      end;
    end; 
     
    Mai aucune image n'est imprimée, aves-vous une suggestion, une remarque pour m'aider ? Merci d'avance.

  2. #2
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 400
    Par défaut
    Citation Envoyé par PHIL45 Voir le message
    Bonjour à tous, je développe une application pour récupérer les extensions présentes sur l'ordinateur. Je souhaite récupérer chauqe extension et son image. J'ai créé le code suivant :
    Salut;

    je ne sais pas si c'est la faute à FF mais chez moi y a pas de code à moins qu'il est blanc / blanc

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 34
    Par défaut Problème d'impression avec un TImage
    Oui, c'est normal, j'ai fait une fausse manip sur mon clavier et ça enregistré le message. Mais je viens de l'editet et vous devrier voir le code !

Discussions similaires

  1. Problème d'impression avec les cases à cocher
    Par madseb dans le forum Access
    Réponses: 7
    Dernier message: 17/09/2022, 19h20
  2. Problème d'impression avec PrinterJob
    Par metaska dans le forum Agents de placement/Fenêtres
    Réponses: 0
    Dernier message: 03/11/2008, 14h44
  3. Problème d'impression avec SQL
    Par DurDur dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 20/12/2007, 18h22
  4. problèmes d'impression avec WORD
    Par MY356 dans le forum Word
    Réponses: 1
    Dernier message: 13/12/2007, 21h54
  5. Problème d'impression avec delphi
    Par Bourak dans le forum Langage
    Réponses: 1
    Dernier message: 12/11/2005, 18h13

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