Hola, tengo un problema al que estoy intentado dar solución y tengo una idea pero me gustaría que algun experto me indicara si estoy haciendo una tonteria y en este caso que debo cambiar.
El problema es es siguiente, varios formularios de mi proyecto pueden llamarse entre si y hasta aquí está todo controlado, lo que ocurre es que quisiera que el formulario que ha sido llamado, una vez que se cierra devuelva el control al que lo llamó o sea, supongamos que tengo los formularios:
Maestro, Extracto, Diario
Diario llama a Maestro para dar una cuenta de Alta, entonces Maestro debe devolver el control a Diario.
Diario llama a Extracto para consultar movimientos, entonces Extracto debe devolver el control a Diario.
Pero, y ahí esta el pero, si Diario llama a Maestro para dar un Alta y desde Maestro llamo a Extracto para consultar saldos, Extracto debe devolver el control a Maestro y posteriormente Maestro debe devolverlo a Diario.
Se me ha ocurrido crear una colección a la que llamo miPila y será una colección de Formularios, siendo el último el que deberá recibir el control y para ello tengo una rutina que añade a la pila y una que devuelve y borra de ésta.
Dim miPila As New Collection
Sub QuienLlama(Formulario As Form)
' Añade a la pila el nombre del formulario que llama, asignando como Key un numero correlativo
miPila.Add Formulario, Str$(miPila.Count)
End Sub
Function QuienLlamo() As Object
' Devuelve el nombre del último formulario que llamó y lo elimina
QuienLlamo = miPila.Item(Str$(miPila.Count - 1))
miPila.Remove (Str$(miPila.Count - 1))
End Function
' A raiz de esto deberia hacer lo siguiente mas o menos
Call QuienLlama(Diario)
Maestro.Show
Call QuienLlama(Maestro)
Extracto.Show
Así antes de salir ejecuto QuienLlamo.Show y supuestamente creo que debería funcionar.
Se que lo mejor es probarlo ya que tampoco es muy complicado pero mi duda está en si al añadir elementos a la coleccion estoy llevando a la misma el formulario con su contenido y estos saturando la memoria o si lo de la coleccion no es mas que una digamos manera de tener las cosas ordenadas.
Gracias
Por cierto, soy incapaz de insertar código en el mensaje, ¿ podeis indicarme como se hace ? Gracias