![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
Problemas con el Focus de un Form MDI Child -Delphi 201'0
¿Donde esta el Focus?
Les comento el siguiente caso haber si a alguien mas le paso y si se les ocurre como puedo solucionarlo... Tengo una grilla en un formulario, (yo utilizo la cxGrid), en esta grilla yo cargo datos, cuando hago con la flecha del teclado para abajo, se graba el registro y automáticamente se hace el append para que pueda seguir cargando una nueva linea.... Aveces, según los valores ingresados en la grilla, en el beforePost de mi query, se ejecuta una validación que muestra un messageDlg... el usuario hace click en aceptar y sigue. Este proceso lo tenia funcionando en delphi 7, tal cual lo comento sin ningún problema.... ahora lo estoy migrando a delphi 2010 y me encuentro con el siguiente problema: Resulta que cuando se me muestra le messagedlg, el foco no vuelve a la grilla... esto solo pasa si el formulario que contiene la grilla es un mdichild.... Si es un formulario común el foco vuelve a la grilla, que quedo en estado de append esperando para cargar... Si alguien quiere reproducir el ejemplo describo los pasos a seguir según yo para poder ver la anomalía: Crear un proyecto nuevo, al formulario de inicio ponerlo como MDIForm, agregar un Menú y hacer que desde el menú se abra un segundo formulario que es el que contendrá la cxgrid... En se segundo formulario, agregar una cxgrid, enlazarla a alguna fuente de datos (Puede ser a una cxMemData) y en el evento BeforePost agregar un messagedlg o showmessage... Y verán que cuando graban la, grilla, queda sin el foco...
__________________
Saluda Atte Neeruu!!! :) |
|
#2
|
|||
|
|||
|
Adjunto algunas pruebas...
Pruebas He llegado a determinar que el caso se da, cuando ejecuto un exe creado en 2010 en Windows Seven. Exe Creado en: WinXP WinSeven Delphi 7 OK OK Delphi 2010 OK FAIL Alguna idea? Aclaro que para generar los exe se utilizo los mismos fuentes, con la misma versión de devExpress.
__________________
Saluda Atte Neeruu!!! :) |
|
#3
|
|||
|
|||
|
Agrego un tercer ejemplo, en este caso abro un ventana, simuladora de un messagedlg y el foco es recobrado por la grilla perfectamente....
Sigo sin entender porque con un ShowMessage o un MessageDlg el foco no vuelve a la cxGrid Otro Ejemplo
__________________
Saluda Atte Neeruu!!! :) |
|
#4
|
||||
|
||||
|
Hola Neeruu.
No tengo Delphi 2010 ni los componentes que usas, pero mirando tu código te sugiero que pruebes agregando la siguiente lína al finalizar el evento OnNewRecord:
Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#5
|
|||
|
|||
|
Lo que pasa que la parte de datos lo tengo en un datamain, y los datos enlazados a la grilla no siempre se cargan en la grilla... por eso no puedo llamar desde mi modulo de datos al setfocus de la grilla....
En los rar que comparti estan los exe... les sucede lo mismo en win seven?
__________________
Saluda Atte Neeruu!!! :) |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Ocultar Form fsmdi Child | verito_83mdq | OOP | 11 | 08-01-2011 03:45:54 |
| mdi form and child | ale21alito | Varios | 9 | 07-02-2008 01:04:05 |
| Como cargar un MDI Child de Delphi en un MDI Form de VC++ | onlytk | Varios | 0 | 10-12-2006 03:15:31 |
| Menú en form child | supermilloriver | OOP | 2 | 12-09-2006 13:51:20 |
| Crear un MDI child form sin mostrarlo | Neomanar | OOP | 2 | 09-09-2005 16:22:11 |
|