private void FinEvent() { if (Lista.Count == 0) { //ya no hay mas, por lo que termine if (OnFin != null) { OnFin(); } return; } //me traigo el primer objeto Pos++; if (Pos >= Lista.Count) { //ya no hay mas, por lo que termine if (OnFin != null) { OnFin(); } return; } CDependencia dep = Lista[Pos]; //que carge sus dependencias dep.CargaDependencias(); }
private void timer1_Tick(object sender, EventArgs e) { Objetos.CSysObject obj = null; TreeNode nodo2 = null; CDependencia dep = null; switch (estado) { case 0: //cargando dependencias if (Pos >= Objetos.Count) { Pos = 0; estado = 1; if (OnBeginBusqueda != null) { BeginBusqueda(); } return; } obj = Objetos[Pos]; nodo2 = Nodo.Nodes.Add(obj.Nombre); nodo2.ImageIndex = IndexImagen(obj); nodo2.SelectedImageIndex = IndexImagen(obj); nodo2.StateImageIndex = IndexImagen(obj); if (OnIncremento != null) { OnIncremento(obj); } Pos++; break; case 1: //buscando los que ya se avian agregado if (Pos >= Objetos.Count) { timer1.Enabled = false; //checo si se insertaron mas nodos if (Lista.Count == 0) { //ya no hay mas, por lo que termine if (OnFin != null) { OnFin(); } return; } //me traigo el primer objeto Pos = 0; dep = Lista[Pos]; //que carge sus dependencias dep.CargaDependencias(); return; } obj = Objetos[Pos]; if (OnBusca != null) { //busca si ya avia sido agregada la dependencia if (OnBusca(obj) == false) { //no se encontro, por lo que lo agrego a la lista de insercion nodo2 = Nodo.Nodes[Pos]; dep = new CDependencia(nodo2, obj, DB, Modo); dep.OnBusca += new OnBuscaEvent(BuscaEvent); dep.OnCantidad = new OnCantidadEvent(CantidadEvent); dep.OnFin += new OnFinEvent(FinEvent); dep.OnIncremento += new OnBuscaEvent(IncrementoEvent); dep.OnBeginBusqueda = new OnFinEvent(BeginBusqueda); Lista.Add(dep); } } Pos++; break; } }