Autor Tema: ¿Cómo defino el "orden de arranque" de los objetos en un formulario?  (Leído 7718 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Tengo un formulario con un grid y tres comboboxes. El Init del grid depende de los valores que tengan los comboboxes, pero cuando ejecuto el formulario primero crea el grid y luego los comboboxes, de modo que los valores para el momento de crear el grid están vacíos. ¿Cómo hago para que al ejecutar el formulario primero me carge los comboboxes y luego el grid?

Desconectado rcguillen

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 2320
Re: ¿Cómo defino el "orden de arranque" de los objetos en un formulario?
« Respuesta #1 : enero 01, 2009, 07:27:26 pm »
en fox..se ejecutan los init de los objetos en el orden q tu los agregaste en el formulario...

mi recomendacion es q nunca coloques nada en los init de los objetos y mas si hay codigo q depende de otros objetos.

lo mejor es colocar todo en el init del formulario(valores de combo, propiedades de grid etc etc)  ya q este es el ultimo q se ejecuta.

Saludos Cordiales


-:Rcguillen-NoMercy:-
-:Es inutil hacer cualquier cosa a prueba de tontos, porque los tontos son muy ingeniosos:-

Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Re: ¿Cómo defino el "orden de arranque" de los objetos en un formulario?
« Respuesta #2 : enero 12, 2009, 11:49:54 am »
en fox..se ejecutan los init de los objetos en el orden q tu los agregaste en el formulario...

mi recomendacion es q nunca coloques nada en los init de los objetos y mas si hay codigo q depende de otros objetos.

lo mejor es colocar todo en el init del formulario(valores de combo, propiedades de grid etc etc)  ya q este es el ultimo q se ejecuta.

Saludos Cordiales


Probando noté que los controles se cargan por orden de tamaño, del más grande al más pequeño, así que creé un contenedor más grande que el grid en el que coloqué el código para los combobox y que, así, colocara primero los valores de éstos controles antes que los del grid para que pudieran ser utilizados para cargar los datos del grid.

Ahora tengo otra pregunta. Resulta que tengo un formulario principal y en 'Load' he colocado 'SET SYSMENU OFF', en 'Init' , 'DO mimenu with this,.T.' y en 'Release'

SET SYSMENU TO DEFAULT
CLEAR EVENTS

Al darle ejecutar desde Visual Fox me muestra bien la barra de menú con el formulario pero después de generar el ejecutable, cerrar Visual Foxpro y darle doble clic al ejecutable para, valga la redundancia, ejecutar el programa, sólo hace como un destello, medio abre la ventana sin mostrarme ningún formulario, me muestra un momentito la barra de menú solamente con el resto del espacio reservado para el formulario en blanco y se vuelve a cerrar todo. ¿Cómo evito que se cierre y que, al contrario, me muestre el formulario principal?

Desconectado MOISES

  • Sv Full Member
  • *
  • Mensajes: 553
Re: ¿Cómo defino el "orden de arranque" de los objetos en un formulario?
« Respuesta #3 : enero 12, 2009, 12:06:10 pm »
Te hace falta el READ EVENTS.  analiza lo siguiente.


   1. Establecer las configuraciones iniciales, inicializar variables, abrir bases de datos, etc.
   2. Establecer la interface inicial ejecutando un menú o un formulario.
   3. Establecer un bucle de eventos ejecutando el comando READ EVENTS.
   4. Establecer la finalización del bucle de eventos desde la opción Salir del menú o el botón Salir del formulario con el comando CLEAR EVENTS.
   5. Terminar el programa cerrando las bases de datos, liberando variables, etc.

El código de un programa principal siguiendo los pasos anteriores seria:

*-----------------
*-- Principal.prg
*-----------------
*-- Configuraciones iniciales
DO Inicio.prg
*-- Mostrar la interface inicial
DO MenuPrincipal.MPR  &&  Menú principal
*- ó
DO FORM FormPrincipal  && Formulario principal
*-- Iniciar el bucle de eventos
READ EVENTS
*-- Terminar el programa
DO Termina.prg

Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Re: ¿Cómo defino el "orden de arranque" de los objetos en un formulario?
« Respuesta #4 : enero 12, 2009, 12:19:06 pm »
*-----------------
*-- Principal.prg
*-----------------
*-- Configuraciones iniciales
DO Inicio.prg
*-- Mostrar la interface inicial
DO MenuPrincipal.MPR  &&  Menú principal
*- ó
DO FORM FormPrincipal  && Formulario principal
*-- Iniciar el bucle de eventos
READ EVENTS
*-- Terminar el programa
DO Termina.prg

Supongo que Termina.prg es el programa en donde tengo que escribir
CLOSE DATABASES
SET SYSMENU TO DEFAULT
CLEAR EVENTS

...y es el que se ejecutará al cerrar mi formulario principal.

Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Re: ¿Cómo defino el "orden de arranque" de los objetos en un formulario?
« Respuesta #5 : enero 12, 2009, 12:53:31 pm »
Ya pude hacer lo que quería. ¡Muchas gracias!

Ahora, fijate que cuando cierro la aplicación me queda una ventana de visual fox abierta, totalmente en blanco, y cuando le doy click al botón cerrar dice que no se puede salir de Visual Fox y, pues, tampoco tiene una barra de menú.
También, cuando ejecuto el programa principal, en el menú archivo me aparece deshabilitada la opción 'Salir'

¿Sabés qué ondas ahí?

Desconectado MOISES

  • Sv Full Member
  • *
  • Mensajes: 553
Re: ¿Cómo defino el "orden de arranque" de los objetos en un formulario?
« Respuesta #6 : enero 12, 2009, 02:00:25 pm »
con esto en tu opción de salida seria suficiente.


Set Sysmenu On
Clear Events

Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Re: ¿Cómo defino el "orden de arranque" de los objetos en un formulario?
« Respuesta #7 : enero 22, 2009, 11:15:24 am »
con esto en tu opción de salida seria suficiente.


Set Sysmenu On
Clear Events


Lo hice pero fijate que el programa me funciona bien, el menú y todo, pero después de cerrar el formulario principal me queda siempre la ventana de Visual Fox en blanco abierta, sin menú ni nada, y cuando le doy click en el botón cerrar me aparece el mensajito "No se puede salir de Visual Fox Pro", así que para cerrarla me tocá finalizar el programa desde el Administrador de Tareas de Windows, presionando Ctrl+Alt+Supr

Desconectado eduardoantonio10

  • Sv Member
  • ***
  • Mensajes: 108
Re: ¿Cómo defino el "orden de arranque" de los objetos en un formulario?
« Respuesta #8 : enero 22, 2009, 11:42:29 am »
Lo hice pero fijate que el programa me funciona bien, el menú y todo, pero después de cerrar el formulario principal me queda siempre la ventana de Visual Fox en blanco abierta, sin menú ni nada, y cuando le doy click en el botón cerrar me aparece el mensajito "No se puede salir de Visual Fox Pro", así que para cerrarla me tocá finalizar el programa desde el Administrador de Tareas de Windows, presionando Ctrl+Alt+Supr

cuado cierres el form principal ejecutas estos comandos
CLEAR all
quit