Scopo
Ritorna il puntatore dell'i-esimo oggetto trovato. Il metodo equivale a scorrere gli oggetti della ricerca con il metodo GetNextObject e fermarsi quando si è arrivati all'i-esimo oggetto.
Sintassi
int objID = 0  //
//
objID := TreeWalker.FindIndex(indice)
//
objID := TreeWalker.FindIndex(indice)
Argomenti
Indice | Indice dell'oggetto da restituire compreso tra Zero e FindCount. |
Valore di ritorno
Viene ritornato un intero corrispondente al puntatore dell'i-esimo oggetto trovato.
Esempio di codice
//
// Se è valorizzato il tipo
if Tipo > ZERO
{
INDETreeWalker tw = new() //
//
// Cerco tutti gli oggetti di quel tipo
tw.SetRoot(prjID, Tipo, ??, ??, ??)
//
// Se il progetto è compreso nella ricerca
if tw.Find(prjID)
...
//
// Se la ricerca comprende un oggetto derivato dal progetto
if tw.FindDerived(prjID) > ZERO
...
//
// Se la ricerca comprende un oggetto collegato al progetto
if tw.FindLinked(prjID) > ZERO
...
//
Metodo con FindCount e FindIndex
{
int i = 0 //
//
// Scorro gli oggetti trovati
while i < tw.FindCount()
{
int objID = 0 //
OggettoBase obj = new() //
//
// Carico l'oggetto
obj.LoadFromINDE(tw.FindIndex(i))
//
// Lo aggiungo alla collection
Collection.Add(obj)
//
i := i + ONE
}
}
//
Metodo con GetList
...
}
// Se è valorizzato il tipo
if Tipo > ZERO
{
INDETreeWalker tw = new() //
//
// Cerco tutti gli oggetti di quel tipo
tw.SetRoot(prjID, Tipo, ??, ??, ??)
//
// Se il progetto è compreso nella ricerca
if tw.Find(prjID)
...
//
// Se la ricerca comprende un oggetto derivato dal progetto
if tw.FindDerived(prjID) > ZERO
...
//
// Se la ricerca comprende un oggetto collegato al progetto
if tw.FindLinked(prjID) > ZERO
...
//
Metodo con FindCount e FindIndex
{
int i = 0 //
//
// Scorro gli oggetti trovati
while i < tw.FindCount()
{
int objID = 0 //
OggettoBase obj = new() //
//
// Carico l'oggetto
obj.LoadFromINDE(tw.FindIndex(i))
//
// Lo aggiungo alla collection
Collection.Add(obj)
//
i := i + ONE
}
}
//
Metodo con GetList
...
}
- L'ordine degli oggetti all'interno della ricerca corrisponde alla sequenza nella quale gli stessi sono contenuti nella collezione dell'oggetto padre. Quando un oggetto mostra i propri figli nell'albero, viene effettuato un ordinamento logico degli stessi che si basa principalmente sul tipo; per questo l'ordine in cui si vedono gli oggetti nell'albero non corrisponde necessariamente a quello in cui si trovano nella ricerca.
- Se viene chiamato questo metodo senza aver mai inizializzato il TreeWalker con il metodo SetRoot viene sollevata un'eccezione.
Ultima modifica: 16/11/2009 / Validità: da 7.1.3300