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 :

remplacer Bitmap.LoadFromFile() par image d une Timagelist


Sujet :

Delphi

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Points : 226
    Points
    226
    Par défaut remplacer Bitmap.LoadFromFile() par image d une Timagelist
    Bonjour
    Dans ce code qui permet de tapisser le fond du form3 avec une image repetée autant de fois que necessaire, le bitmap est chargé depuis C.
    Je souhaiterais le telecharger depuis un Timagelist sur le form1.
    C est la premiere fois que je manipule une image, je pense avoir fait correctement mais cela ne fonctionne pas comme desiré :

    Code initial
    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
    procedure TForm3.FormPaint(Sender: TObject);
    var
      Bitmap: TBitmap;
      Left, Top: Integer;
    begin
      Bitmap := TBitmap.Create;
      Try
        Bitmap.LoadFromFile('C:\bg_clair.bmp');
        Left := 0;
        while Left < Width do
        begin
          Top := 0;
          while Top < Height do
          begin
            Canvas.Draw(Left, Top, Bitmap);
            inc(Top, Bitmap.Height);
          end;
          inc(Left, Bitmap.Width);
        end;
      Finally
        Bitmap.Free;
      End;
    end;

    code modifié
    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
    procedure TForm3.FormPaint(Sender: TObject);
    var
      Bitmap: TImage;
      Left, Top: Integer;
    begin
      Bitmap := TImage.Create(self);
      Try
        form1.list_bg.GetBitmap(0, Bitmap.Picture.Bitmap);
        Left := 0;
        while Left < Width do
        begin
          Top := 0;
          while Top < Height do
          begin
            Canvas.Draw(Left, Top, Bitmap.Picture.Bitmap);
            inc(Top, Bitmap.Height);
          end;
          inc(Left, Bitmap.Width);
        end;
      Finally
        Bitmap.Free;
      End;
    end;
    Ici, c est bien l image 0 de ma list_bg que je veux recuperer.
    L un d entre vous pourrait m expliquer où est mon erreur et comment y remdier.

    merci de votre aide

  2. #2
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 666
    Points : 643
    Points
    643
    Par défaut
    Bonsoir,

    En modifiant le code, t'as commis des erreurs:

    Bitmap: TBitmap;

    remplace-le par Bitmap

    un code qui marche:

    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
    var
      Bitmap: TBitmap;
      Left, Top: Integer;
    begin
      Bitmap := TBitmap.Create;
      Try
        form1.ImageList1.GetBitmap(0, Bitmap);
        Left := 0;
        while Left < Width do
        begin
          Top := 0;
          while Top < Height do
          begin
            Canvas.Draw(Left, Top, Bitmap);
            inc(Top, Bitmap.Height);
          end;
          inc(Left, Bitmap.Width);
        end;
      Finally
        Bitmap.Free;
      End;
    @
    Nabil

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Points : 226
    Points
    226
    Par défaut
    Je te remercie

    j’étais perturbé par
    Bitmap.Picture.Bitmap
    Je voulais absolument reproduire la même structure...

    merci

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    pourquoi ne pas utiliser la fonction Draw de ImageList ?!

    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
     
    procedure TForm1.FormPaint(Sender: TObject);
    var
      x, y: Integer;
    begin
      y := 0;
      while y < ClientHeight do
      begin
        x := 0;
        while x < ClientWidth do
        begin
          ImageList1.Draw(Canvas, x, y, 0);
          Inc(x, ImageList1.Width);
        end;
        Inc(y, ImageList1.Height);
      end;
    end;
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/02/2011, 12h47
  2. Remplacer champ booléen par image
    Par alexxxx69 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 09/12/2010, 18h58
  3. Remplacement d'un / par un - dans une grande plage
    Par alexg33 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/06/2010, 18h30
  4. Remplacer répertoire Oracle par celui d'une sauvegarde
    Par cvacavant dans le forum Connexions aux bases de données
    Réponses: 13
    Dernier message: 27/07/2009, 17h11
  5. Remplacement boutons radio par images
    Par csseur22 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/11/2007, 19h48

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