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 :

imagelist + drawgrid : problème d'affichage


Sujet :

Delphi

  1. #1
    Membre habitué Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Points : 176
    Points
    176
    Par défaut imagelist + drawgrid : problème d'affichage
    Bonjour à tous !

    Je travaille sur un editeur de cartes pour mon jeu. Le but est de charger un fichier image (chipset) que je decoupe en tuiles de 32px*32px via une imagelist puis d'afficher cette liste dans un drawgrid.

    J'ai cherché sur le forum et j'ai pu arriver à ce code :
    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
     
    implementation
     
    {$R *.dfm}
     
    var
    Tab: array[0..255, 0..255] of integer;
     
    procedure TFenetre.ImagesDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    var
      bmp: TBitmap;
    begin
      bmp := TBitmap.Create;
      Liste.GetBitmap(Tab[ACol, ARow], bmp);
      Images.Canvas.Draw(Rect.Left, Rect.Top, bmp);
      FreeAndNil(bmp);
    end;
    je charge l'image dans un imagelist nommé liste et j'affiche dans une drawgrid nommé images. Le soucis c'est qu'il m'affiche la première image dans toute la grille. Je suppose qu'il faut incrementer mais je voit pas ou. De plus, quand je charge l'image dynamiquement via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Liste.FileLoad(rtBitmap, 'toto.bmp', clNone);
    et que je crée un label dans lequel je compte les images de ma liste, il ne m'en crée que 30 alors que si je le fais avant de compiler j'ai bien mes 480 images.

    Comment faire pour afficher correctement mes images et pour pouvoir charger plus de 30 images?

  2. #2
    Membre habitué Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Points : 176
    Points
    176
    Par défaut
    Finalement j'ai trouvé en fesant ainsi

    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 TFenetre.ImagesDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    var
      bmp: TBitmap;
      i: integer;
      max: integer;
      j: integer;
    begin
      if verif = true then
      begin
        i := 0;
        j := 0;
        max := (Liste.Count);
        bmp := TBitmap.Create;
        while i < max do
        begin
          Liste.GetBitmap(j, bmp);
          Images.Canvas.Draw(0, 32*i+i, bmp);
          j := j+1;
          Liste.GetBitmap(j, bmp);
          Images.Canvas.Draw(32+1, 32*i+i, bmp);
          i := i+1;
          j := j+1;
        end;
      FreeAndNil(bmp);
      verif:= False;
      end;
    end;
    Par contre il charge pas les images non visibles et qi je scroll, les images disparaissent De plus, j'ai toujours aps trouvé comment faire pour charger mes images (il m'en prend que 30 si je le fais depuis un bouton au lieud e le preciser avant de compiler)

Discussions similaires

  1. Problème d'affichage
    Par mustang-gx dans le forum Bases de données
    Réponses: 8
    Dernier message: 26/01/2005, 23h54
  2. Problème d'affichage avec trace
    Par WriteLN dans le forum Flash
    Réponses: 10
    Dernier message: 22/10/2003, 17h59
  3. [Kylix] problème d'affichage
    Par scalvi dans le forum EDI
    Réponses: 1
    Dernier message: 18/06/2003, 11h07
  4. Réponses: 1
    Dernier message: 06/03/2003, 12h57
  5. probléme d'affichage d'une fiche
    Par sb dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 10h43

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