Assigner un objet à un tableau
Bonjour,
Je programme depuis peu en Delphi avec GLScene pour faire un peu joujou avec la 3D.
Bref, j'ai créé une classe qui fait des "dalles".
J'en ai 8 à gérer, je voudrais en faire un tableau.
Bref je déclare un bête tableau bien fixe, bien simple :
Code:
1 2 3 4
|
var
Dalles:array
[1..PLATEAU_COLONNES,1..PLATEAU_LIGNES]of TDalle; |
Ensuite je l'utilise pour le remplir via une bète procédure :
Code:
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
|
//Procédure qui charge les dalles du plateau
procedure TDataModule1.creerPlateau;
var
i,j:Integer;
ProxyDalle:TDalle;
begin
//On crée la dalle principale
DallePrincipale:=TDalle.create(DummyReference,LibraryDalles);
DallePrincipale.setTextureName(TEXTURE_DALLE_PRINCIPALE_LIBELLE);
DallePrincipale.setPosition(DALLE_PRINCIPALE_POSITION_X,
DALLE_PRINCIPALE_POSITION_Y,
DALLE_PRINCIPALE_POSITION_Z);
DallePrincipale.setSize(DALLE_PRINCIPALE_WIDTH,DALLE_PRINCIPALE_HEIGHT,DALLE_PRINCIPALE_DEPTH);
DallePrincipale.texturerCube();
//On crée les huit dalles
for i:=0 to PLATEAU_COLONNES-1 do
begin
for j:=0 to PLATEAU_LIGNES-1 do
begin
ProxyDalle:=TDalle.create(DummyReference,LibraryDalles);
ProxyDalle.setTextureName(TEXTURE_VERSO_DALLE_LIBELLE);
ProxyDalle.setPosition(DALLE_TAILLE*j,0.1,DALLE_TAILLE*i);
ProxyDalle.setSize(DALLE_TAILLE,0.1,DALLE_TAILLE);
ProxyDalle.texturerCube();
Dalles[i,j]:=ProxyDalle;
end;
end;
end; |
En fait si j'enlève la ligne
Code:
Dalles[i,j]:=ProxyDalle;
Ça fonctionne très bien, je vois dans mon environnement 3D les huit dalles bien rangées et tout. Seulement, il ne me sera pas possible de les retrouver, donc le but est de stocker le pointeur ProxyDalle dans un tableau via cette ligne.
A la compilation, pas de souci.
Mais à l'exécution, il me fait une 'Erreur abstraite' sur la création de l'objet GLScene
Hors cette partie de code fonctionne parfaitement quand j'assigne pas la variable ProxyDalle au tableau.
Je note que j'ai utilisé une variable ProxyDalle car j'ai eu exactement le même problème en assignant directement la création de la Dalle au tableau avec un code du genre :
Code:
1 2
|
Dalles[i,j]:=TDalle.create(DummyReference,LibraryDalles); |
Bref, pourquoi il veut pas mettre mon pointeur dans mon tableau, pourtant le type est le même, le tableau est bien vide. Pourquoi plante-t-il sur la création :calim2:
Je pense que c'est un truc tout bête mais j'ai eu beau chercher dans des tutos d'utilisation de tableaux, la plus part des gens assignent la variable au tableau directement...