Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#7

Re: Alle Objekte in einer GLScene löschen?

  Alt 14. Aug 2006, 14:08
Ah ja, da ist ein kleiner Fehler drin. GLScene.Objects gibt dir immer ein Wurzelelement zurück. Dieses enthält alle BaseSceneObjects (wenn ich mich richtig erinner), die wiederum als Elternteil für weitere BaseSceneObjects dienen können.
Versuch es mal mit etwas wie:
Delphi-Quellcode:
var buffer : TGLBaseSceneObject;
begin
  if GLScene.Objects.Count > 0 then
  begin
    for i := 0 to GLScene.Objects.Count - 1 do
    begin
      if GLScene.Objects.Children[i] is TGLCube then
      begin
        buffer := GLScene.Objects.Children[i];
        GLScene.Objects.Remove(buffer);
        buffer.Free;
      end; // if GLScene.Objects.Children[i] is TGLCube
    end; // for i := 0 to GLScene.Objects.Count - 1
  end; // if GLScene.Objects.Count > 0
end;
Also so ungefähr, irgendwie konnte man glaube ich noch sagen, was mit den Kindern von einem Objekt geschehen soll, wenn dieses entfernt wird. Musst du ggf. anpassen, ist leider ungetestet. Sitze gerade vor einem sehr langsamen Rechner, da würde es wirklich lange dauern Delphi mit GLScene zum laufen zu bekommen.
  Mit Zitat antworten Zitat