Sv Community El Salvador
Soporte y Tecnología => Programación => FOX => Mensaje iniciado por: gilanrodas en diciembre 31, 2008, 02:43:31 pm
-
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?
-
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
-
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?
-
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
-
*-----------------
*-- 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.
-
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í?
-
con esto en tu opción de salida seria suficiente.
Set Sysmenu On
Clear Events
-
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
-
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