После того как ты создаешь список объектов с помощью команд:
SphereDL :=glGenLists(1);
glNewList(SphereDL, GL_COMPILE);
там помоему нужно вызывать потом glCallList(SphereDL) из процедуры Draw
но тогда нужно обратно 0 на 1 поменять в glGenLists(1).
вообще список создается всего один раз. поэтому процедуру CreateSphere можно вызвать ..например при создании формы. а потом уже в Draw вызывать glCallList(SphereDL)
и будет выглядеть примерно так:
Код:
procedure TForm1.Draw;
begin
glClear(GL_DEPTH_BUFFER_BIT or GL_COLOR_BUFFER_BIT);
glCallList(SphereDL) ;
SwapBuffers(ghDC);
glPushMatrix;
end;