Dynamicznie tworzone objekty... i tu pytanie.

0

Pisze prościutki a'la silniczek w OGL'u (na GLScene). Sprawa jest prosta: zrobiłem sobie trójwymiarową mape (heightmap odczytany z pliku), wstawiłem to na ekran, teraz z innego pliku odczytuje, ścieżki do modeli oraz ich X,Y,Z, poczym dynamicznie tworząc objekty, ustawiam wyczytane objekciki w żądanych pozycjach.

Cała idea wygląda następująco:

procedure TForm1.CreateObjects;
var i: byte;
begin
for i:=0 to ObjMp.ItemCount-1 do //wiadomo...
 begin
  obj:=TGLFreeForm(Dummy.AddNewChild(TGLFreeForm)); //tworzymy objekcik
  Obj.LoadFromFile('obj\'+ObjMp.Items[i].ObjFile); //czytamy model
  Obj.Position.X:=ObjMp.Items[i].X; //ustawiamy rzecz jasna
  Obj.Position.Z:=ObjMp.Items[i].Y; //...
  Obj.Position.Y:=ObjMp.Items[i].Z; //...
  Obj.BuildOctree(); //wrzucamy na ekranik
 end;
end;

Wszystko działa ładnie, pięknie, lecz... nasuwa mi się jedno pytanie odnośnie dynamicznego tworzenia objektów tj.: jak teraz przesunąć jeden z tych objekcików, dajmy na to ten "stworzony jako trzeci", tzn jak sie odwołać do takiego objektu, poza procedurą gdzie takowy został stworzony.

Z góry dziękuje...

0
// poza funkcją:
var
Obj: array[0..N] of TTypeObjCzyCoTamMasz;
[...]
// w funkcji...
  for i:=0 to ObjMp.ItemCount-1 do
  begin
    Obj[I] := TGLFree.....
// w innym miejscu programu
  Obj[2].Position.X := Obj.Position.X - 10;

Tak nie idzie?

1 użytkowników online, w tym zalogowanych: 0, gości: 1