Hi Joshy,
auch hier gibt´s wieder viele Wege, die nach Rom führen.
mit
is
i :integer;
liste :list[object];
obj : object;
do
liste.create;
for i:=1 to current.anzahlobjekte loop
obj:=current.objekt(i);
if obj.klasse.name="Kante" then
liste.anhaengen(obj); -- Kanten sammeln
end;
next;
repeat
liste.entnehmen(1).vernichteObjekt;
until liste.dim=0;
end;
Kannst Du alle Kanten sammeln und dann loeschen;
Wenn Du nur die Kanten loeschen willst, die in Deiner Wegetabelle stehen und Objekte sind, die mit Kanten verbunden werden können - also keine Methoden, Displays etc., so kannst Du folgendermassen vorgehen :
is
i,j :integer;
obj : object;
do
for i:=1 to wege.ydim loop
obj:=Wege ["Weg", i];
for j:=1 to obj.anzahlnf loop
obj.nfkante.vernichteobjekt;
next;
for j:=1 to obj.anzahlvg loop
obj.vgkante.vernichteobjekt;
next;
next;
end;
ich vermute mal, dass Du bei Deinem Schleifendurchlauf (N) die nfkante des Bausteins N die auch die vgkante des Bausteins N+1 ist gelöscht hast und diese Kante dann beim nächsten Schleifendurchlauf (N+1) nicht mehr gefunden wurde.
Man könnte durch eine Abfrage, ob das Kantenobjekt noch existiert
if obj.nfkante\=VOID then .... dies vorher überprüfen.
wie gesagt, es gibt viele Möglichkeiten, dies waren nur einige.
Gruß
------------------
DER SIMULATOR