Einzelnen Beitrag anzeigen

Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#9

Re: Alle Objekte in einer GLScene löschen?

  Alt 14. Aug 2006, 13:56
Hier die funktion um alle glscene objekte aufzulisten dannnach noch die liste abarbeiten und die objekte freigeben, am besten mit findchild und einer abfrage auf <>nil.
Delphi-Quellcode:
type
  TElement = class(TObject)
    Node : TTreeNode;
    Obj : TGLBaseSceneObject;
    constructor create(Node : TTreeNode; Obj : TGLBaseSceneObject);
  end;

constructor TElement.create(Node : TTreeNode; Obj : TGLBaseSceneObject);
begin
  self.Node := Node;
  self.Obj := Obj;
end;

function scenetolist: tstringlist;
var i : Integer;
    List : TObjectList;
    element : TElement;
    buffer : TTreeNode;
begin
  result:=tstringlist.Create;
  List := TObjectList.Create;
  if root.Count > 0 then
    begin
      for i := 0 to root.Count - 1 do
        begin
              List.Add(TElement.Create(nil, root.Children[i]));
        end;
    end;

  while List.Count > 0 do
    begin
      element := TElement(List.Extract(List.First));
      result.Add(element.Obj.Name);
      if element.Obj.Count > 0 then
        begin
          for i := 0 to element.Obj.Count - 1 do
            begin
                  List.Add(TElement.Create(nil, element.Obj.Children[i]));
            end;
        end;
      element.Free;
    end;
end;
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat