FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Problema con Aplicacion MDI
Muy buenas.
Veréis, tengo una aplicacion MDI en la que hay abierta una ventana hija con una rejilla de datos. He colocado un combobox en un toolbar que tengo en la cabecera a fin de controlar el cambio de un parámetro en la consulta que se utiliza para mostrar los datos en la rejilla, pero el caso es que cuando hago click en ese combo la rejilla de datos se queda bloqueada y no puedo cambiar el registro activo. Desbloquearlo es tan fácil como hacer click en otra ventaja hija y luego volver a la primera o hacer click por ejemplo en el escritorio y luego volver a la ventana, pero como os podéis imaginar esto es un engorro. Agradecería que me indicárais como corregir este efecto desagradable. Muchas gracias y un saludo |
#2
|
||||
|
||||
Si cambias un parámetro de la consulta, tendrás que cerrar y abrir de nuevo la consulta para que se actualice el Grid.
Que tal hacer eso en el OnChange o en el Onclick del TcomboBox? Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#3
|
||||
|
||||
Ante todo gracias por responder.
El problema no es el cambio del parámetro de la consulta en si, pues esto lo hace bien, el problema es que el grid tras el cambio se queda bloqueado. De hecho si el combo está vacío y no se utiliza ningún evento del mismo se sigue bloqueando el dbgrid justo después de hacer click en él. Yo creo que se debe tratar de algún problema con las aplicaciones MDI y los controles editables que se ponen en el MDIForm. He probado a cambiar el el ComboBox por un DBEdit y sigue pasando lo mismo: con sólo hacer click en el control ya no puedo volver a la ventana hija normalmente (no puedo moverme por sus registros). De nuevo pido ayuda por si a alguien más le ha pasado lo mismo y me puede indicar alguna manera de evitar el problema. Un saludo Thales |
#4
|
||||
|
||||
Si el Tcombobox es para una ventana determinada, debería estar en la ventana hija, no en el MDIForm.
Más bien me inclino a que sea un efecto colateral de tu programa. Dificil de encontrar.... Por supuesto. Así es imposible encontrar cual es el fallo. Esperemos que alguien entienda bien lo que te sucede y pueda ayudarte.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#5
|
||||
|
||||
He generado una aplicación con los mínimos elementos posibles y que muestran el mal comportamiento que describo. Más abajo pongo un enlace para descargarla, el fichero sólo ocupa 9,55 KB. No puedo poner aquí ningún código pues los componentes van sin código alguno.
http://personales.ya.com/jondalar/mdi.zip En lo que respecta a la razón para incluir el combo en la cabecera y no en las ventanas hijas, es porque el mismo lo utilizan todas las ventanas hijas (unas 10 en total en el programa original) Un saludo Thales |
#6
|
||||
|
||||
Es curioso el comportamiento, solo se puede volver al Grid, minimizando la ventana hija y despues restaurandola.
Parece que ocurre cuando el control adquiere el foco y lo mantiene, por eso da lo mismo que sea un Tcombobox, TEdit, TButton. Como son 10 ventanas hijas, quizás no te valga, pero usando TActionCoolbar, y poniendo el combo en la ventana hija, al maximizar la ventana hija, el ActionCoolbar se fusiona con el existente en la ventana padre, y no tiene tal efecto. De hecho, poniendo el combo en la ventan hija no tiene el efecto raro.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
|