look what i have, any ideia why i need to move 2 insted of 1 as you say ?
(if i move 1 it does not position the cube above the another, they intersect)

[pascal] glLoadIdentity;
glTranslatef(-1,1,-20);

for m := 0 to l - 1 do
begin
for n := 0 to h - 1 do
begin
for i := 0 to w - 1 do
begin
test.Draw; //# a TCUBE.draw();
glTranslatef(2,0,0);
end;
glTranslatef(-2*w,2,0);
end;
glTranslatef(0,-2*h,-2);
end;

glTranslatef(6,-6,-10);

for m := 0 to l - 1 do
begin
for n := 0 to h - 1 do
begin
for i := 0 to w - 1 do
begin
test.Draw; //# a TCUBE.draw();
glTranslatef(2,0,0);
end;
glTranslatef(-2*w,2,0);
end;
glTranslatef(0,-2*h,-2);
end;[/pascal]

ps: in this code i rneder 2 cubes