Forum Clubic

[Pascal Object] Tableau d'images identiques

Bonjour,

j’aimerais savoir si il est possible de créer une sorte de boucle pour appeler des variables se nommant par exemple nb01, nb02, nb03…, nb30.

En fait c’est pour réaliser un jeu avec des pions sous Lazarus, les variables sont le même paramètre mais dans différentes images. La solution du tableau ne convient donc pas.

En espérant m’être fait comprendre, si quelqu’un peut m’aider.

J’ai pensé stocker mes images dans un tableau à deux entrées stockant du timage mais lorsque que je fait ça:

T[5,5]:=Form1.Pion;
T[5,5].left:=305;
T[5,5].top:=30
5;
T[5,5].show;
T[6,6]:=Form1.Pion;
T[6,6].left:=307;
T[6,6].top:=30
7;
T[6,6].show;

je n’ai qu’un seul pion qui s’affiche (le [6,6] apparemment). Est-ce normal ?
Ca se corrige ?

apparemment le problème vient du fait que j’utilise 2 fois Form1.Pion

comment corriger ça?

A quoi sert image.create() et quels sont les paramètres à mettre dedans?

personne :??:

bon dernière tentative :
j’ai créé un tableau de ce type :

t_images=array [1..max] of array [1..max] of timage;

je veux remplir toutes les cases avec la même image (T est de type t_images):

for i:=1 to max do
         for j:=1 to max do
             begin
                 T[i,j]:=Form1.Pion;
                 T[i,j].left:=30*i;
                 T[i,j].top:=30*j;
                 T[i,j].show;
              end;

Mais seule la dernière image reste affichée : même l’image nommée pion disparaît :heink:

j’ai un autre problème avec delay:

for i:=1 to 50 do
              begin
              Form1.Pion.top:=i;
              form1.Pion.refresh;
              delay(100);
              end;

rien ne se passe pendant quelques secondes et l’image passe directement à sa position finale.

En espérant que quelqu’un puisse enfin me répondre :heink:

Lazarus je ne connait pas, et il ne doit pas y avoir grand monde ici :smiley: (p-e sur développez?)

bref, il faut peut-être créer une instance d’image par case, Lazarus ne doit pas supporter d’utiliser la même instance d’image sur toutes les case, et il n’affiche donc qu’une seule image: à la dernière position que tu lui a demandé.

Lazareus = Delphi = Pascal Object

C’est bon j’ai trouvé la solution :bounce:


    T[1,3].image:=Form1.Pion1;
    T[1,4].image:=Form1.Pion2;
    T[1,5].image:=Form1.Pion3;
                   ....
    T[7,4].image:=Form1.Pion32;
    T[7,5].image:=Form1.Pion33;
  :paf:  :sol:  :paf:  :sol:  :paf:  :sol:  :paf:  :sol:  :paf:  :sol:  :paf:

Hum j’ai pas tout lu, mais je viens de comprendre ton problème : tu faisais une référence sur une image, et il se trouve que tu la modifiais à chaque fois.