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 :
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
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?
Partager