Ver Mensaje Individual
  #1  
Antiguo 14-02-2005
brandolin brandolin is offline
Miembro
 
Registrado: jul 2003
Ubicación: Mendoza
Posts: 324
Reputación: 21
brandolin Va por buen camino
Ventanas MDIChild y Normal

Hola a todos los foristas, estoy teniendo un problema y creo que es conceptual, a ver si me puedo explicar bien para que me ayuden.

Tengo un form de consulta de artículos, el cual es MDIChild. Dentro de la aplicación necesito que se llame de esta forma es decir como fsMDIChild y en otras necesito que se llama de la corma fsNormal. Para eso y viendo que esa propiedad (formstyle) no se puede cambiar en tiempo de ejecución luego de creado el form, me he construido un nuevo constructor para el susodicho form que lo que hace es cambiar dichas propiedades.

El código es el siguiente:

Código:
constructor TfrmConsArticulos.ShowSeleccion(Sender: TObject; var pCodArt: Integer);
begin
     inherited create(nil);
     FormStyle := fsNormal;
     Visible := False;
     InicializarEstructuras;  //Ejecuta una consulta en las Base de Datos
     ShowModal;                 //Muestra y espera a que se presione el Boton Seleccionado

     if CodigoSeleccionado //Devuelve el código del articulo.
     then pCodArt := vCodArticulo;
end;
Funciona de maravillas, el problema surge con el evento onFormShow. Resulta que este onFormShow se ejecuta dos veces, una cuando se hace el ShowModal y otra cuando se termina de ejecutar este constructor. ¿Cuál es el problema? Es que en el evento onFormShow especifico algunas consultas que se debe hacer cuando el form se ejecuta como MDIChild y no cuando se ejecuta como Normal. Esto hace que la base de datos se lea dos veces, etc, etc.

Espero haber sido claro al presentar el problema. ¿Alguna sigurencia?
Gracias por todo desde ya.
Responder Con Cita