Schleifen

Hallo Forum, hier mein Problem:
ich habe ein Polygon-Thema und mehrere
Objekte selektiert.
Für die selektierten Objekte möchte ich "nacheinander" also für jedes einzelne einige scripte laufen lassen.
geht das??

Gruß
Kay Krüger
Hallo Kay,

ja, das geht. Mit dem Avenue-Befehl
av.run("Skriptname", SELF) kann aus einem Skript heraus ein zweites Skript aufgerufen werden. Entsprechend könntest Du diese Befehlszeile in eine Schleife integrieren, welche die Objekte eines Themas abfragt.

Hoffe, ich konnte helfen
Johannes
Hallo Johannes, hallo Forum, der Befehl avb.run ist bekannt, das Problem liegt wo anders.
die "for each" Schleife arbeitet die selektierten Objekte anscheinend nicht sauber nacheinander ab, sondern als "ganzes".
Ich brauche auf deutsch gesagt:
nimm 1 aus selection und mache dasunddas
nimm 2 aus selection und mache dasunddas usw.

so klarer??

Gruß Kay
Hallo,

kann ich die Schleife mal sehen?

Jörg
Würde mich auch interessieren. Ich frag mich nämlich: wenn du "für jedes einzelne Objekt" etwas machen willst, warum willst du dann eigentlich eine Schleife laufen lassen? Kannst du die Objekte nicht einfach einzeln ansprechen?

Einfaches Beispiel:

theView = av.GetActiveDoc
theTheme = theView.GetActiveThemes.Get(0)
theVTab = theTheme.getfTab

'--------------------------------
'SELEKTION IN BITMAP SCHREIBEN

theBitmap = theVTab.getSelection

'--------------------------------
'BITMAP IN LISTE SCHREIBEN

theList = List.Make

for each b in theBitmap
theList.Add(b.clone)
end

'--------------------------------
'OBJEKTE SPEZIFIEREN

no0 = theList.get(0)
no1 = theList.get(1)

'--------------------------------
'OBJEKTE EINZELN BEARBEITEN (HIER ALS BSP. EINFACH VALUE SETZEN)

theField = theVTab.findField("XY")

theVTab.setValue(theField,no0,99)
theVTab.setValue(theField,no1,11)

theVTab.flush
Hallo Jörg,
hier die Schleife


dasthema_tab=dasthema.getFtab
suche_tab=dasThema_tab.getselection
for each rec in suche_tab

finden.SelectByTheme( auswahl, #FTAB_RELTYPE_ISWITHINDISTANCEOF,
distance , #VTAB_SELTYPE_NEW )
av.run("xyz",self)
end
hinweis dasthema und auswahl sind identische Themen(logisch)
und in script "xyz" wird noch auf weitere "unterscripte" verwiesen

gruß
kay
Hallo Kay,

die SelectByTheme Methode habe kaum genutzt. Kann es sein, dass durch #VTAB_SELTYPE_NEW die Auswahl neu gesetzt wird, dh. in der Bitmap suche_tab nur noch ein Eintrag vorhanden ist und die Schleife dewegen auch nur einmal durchlaufen wird?
Ist vor dem ersten Schleifendurchlauf sicher gestelt, dass die Selektion korrekt ist?

Maxilla: ??
Die Schleife ist doch hervorragend geeignet. Würdest Du 1000 Zeilen mit
theVTab.setValue(theField,noY,X)
füllen, wenn Du 1000 Objekte bearbeiten willst? Außerdem ist bei einer Auswahl ja auch gar nicht bekannt, wieviele Ojekte bearbeitet werden müssen. Du könntest natürlich Dein Script zur Einzelbarbeitung dynamisch erzeugen, wenn Du weißt wieviele 'theVTab.setValue(theField,no0,99)' Du brauchts. Am besten machst Du das in einer Schleife ;-)

Jörg
Hi Jörg,

hast du wohl 'n büschn Recht. Dank für den zarten Hinweis :o]

M.
gern geschehen
Hallo Jörg, a. d. Frage, ob vor dem ersten Schleifendurchlauf die Selektion korrekt ist, hier die Antwort: ja.


Gruß Kay