Hola Salinetas
Pienso que de eso se trata el foro, no todos podemos estar de acuerdo en todo,
pero comentandolo puede surgir nueva información que nos lleve a nuevas ideas
para mejorarlo o detectar por donde esta el problema.
Una pregunta, probaste el ejemplo que postee ?
( Que fué enfocado a darte una solución, no a seguir la forma en que tu
quieres hacerlo)
Si lo pruebas veras que no genera algún error y así puedes seguir
creando ventana sobre ventana y no debería darte problemas.
(Y a eso es a lo que me refiero cuando hablo de seguir una cierta estructura.)
En tu ejemplo aparece el error "Win_2 already defined" si oprimes por segunda
vez el boton de la primer ventana, y si tecleas algo y oprimes enter en todos los
TEXTBOX que te presenta, al final te genera otro error diferente "Win_2 is not defined"
el cual también habrá que investigar y siguiendo sobre esa base "quizá" surjan nuevos errores.
comentas que encontraste estas funciones: IsControlDefined - ISWINDOWACTIVE
claro que las puedes utilizar y están para eso, pero tu programa ira creciendo más.
Entonces, por deducción (en mi caso) me voy por la parte que funciona y no genera
algún error. ( y en su caso reportar el problema para ver si tiene alguna solución)
WINDOW RELEASE
Moderator: Rathinagiri
Re: WINDOW RELEASE
Andrés González López
Desde Guadalajara, Jalisco. México.
Desde Guadalajara, Jalisco. México.
- SALINETAS24
- Posts: 667
- Joined: Tue Feb 27, 2018 3:06 am
- DBs Used: DBF
- Contact:
Re: WINDOW RELEASE
Hola de nuevo.., ya está solucionado.
En honor a la verdad, me puso sobre la pista el amigo MUSTAFA.
En honor a la verdad, me puso sobre la pista el amigo MUSTAFA.
Code: Select all
#include "hmg.ch"
PROC Main()
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 775 ;
HEIGHT 600 ;
TITLE "Window Abiertos" ;
MAIN NOMAXIMIZE NOSIZE
ON KEY ESCAPE ACTION Form_1.Release
DEFINE TIMER Timer_1 INTERVAL 1000 ACTION (RELEASE MEMORY)
@ 240,250 LABEL Label_02 WIDTH 350 VALUE "Window Abiertos" FONT "Arial" SIZE 20 BOLD ITALIC
DEFINE BUTTON Web1
ROW 440
COL 101
WIDTH 090
HEIGHT 030
CAPTION SPACE(5)-"Win_01"
TOOLTIP ""
ACTION Window_01()
END BUTTON
DEFINE BUTTON But_Exit
ROW 440
COL 501
WIDTH 090
HEIGHT 030
CAPTION SPACE(5)-"&Exit"
TOOLTIP "Exit"
ACTION Form_1.Release
END BUTTON
END WINDOW
Form_1.Center
Form_1.Activate
RETURN
*---------------------------------*
Function Window_01()
*---------------------------------*
LOCAL aField1, aField2:=""
DEFINE WINDOW Win_1 ;
AT 0,0 ;
WIDTH 500 ;
HEIGHT 300 ;
TITLE "Ventana 1 Child";
MODAL
ON KEY ESCAPE ACTION Win_1.Release
@ 100,100 LABEL Label_03 WIDTH 350 VALUE "Window Win_1 Child" FONT "Arial" SIZE 20 BOLD ITALIC
@ 120,100 TEXTBOX GET_1 WIDTH 85 VALUE aField1 MAXLENGTH 10 ;
ON ENTER Window_02()
IF !IsWindowDefined( Win_2 )
DEFINE WINDOW Win_2 ;
AT 0,0 ;
WIDTH 500 ;
HEIGHT 300 ;
TITLE "Ventana con hide 2 ";
MODAL
ON KEY ESCAPE ACTION Win_2.HIDE
@ 100,100 LABEL Label_04 WIDTH 350 VALUE "Window Win_2 Child" FONT "Arial" SIZE 20 BOLD ITALIC
@ 120,100 TEXTBOX GET_2 WIDTH 85 VALUE aField2 MAXLENGTH 10 ;
ON ENTER Win_2.hide
DEFINE BUTTON But_Exit_1
ROW 200
COL 301
WIDTH 090
HEIGHT 030
CAPTION SPACE(5)-"&Exit"
TOOLTIP "Exit"
ACTION Win_2.hide
END BUTTON
END WINDOW
ENDIF
END WINDOW
Win_1.Center
Win_1.Activate
Return .T.
*---------------------------------*
Function Window_02()
*---------------------------------*
IF !ISWINDOWACTIVE(Win_2)
CENTER WINDOW Win_2
ACTIVATE WINDOW Win_2
ELSE
Win_2.show
wIN_2.SETFOCUS
ENDIF
Return .T.
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no.