WINDOW - UNA DUDA

HMG en Español

Moderator: Rathinagiri

Post Reply
User avatar
SALINETAS24
Posts: 200
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 2 times
Been thanked: 5 times

WINDOW - UNA DUDA

Post by SALINETAS24 » Thu Nov 08, 2018 9:20 pm

Hola a todos.
Tengo una duda, una curiosidad..., necesidad de saber ... ;)

Os paso un código, muy simple, extraido del los SAMPLES de HMG.
Tal y como está, si lo compilais y ejecutais, entrar en la opción 1 del menu, os llevará a otra ventana con la sentencia ON RELEASE Refres(), y cuando cerreis la ventana, os dara un error.

Ahora bien.., si cambiamos las linea del error y dejamos activo solo el MSGBOX, funciona de maravilla.

La pregunta... ¿alguien sabe el tipo de WINDOW que utiliza la funcion MSGBOX ..., o es un secreto de bill puertas.., o es que yo defino mal este tipo de ventana....?

Muchas gracias a todos y vamos con una cervecita fresquita....,y ya se que la curiosidad mato al gato :lol:

Code: Select all

#include "hmg.ch"

Function main()

	DEFINE WINDOW Form_1 ;
		AT 0,0 ;
		WIDTH 400 ;
		HEIGHT 200 ;
		TITLE 'Menu Test' ;
		MAIN 

		DEFINE MAIN MENU

			POPUP 'File'

				ITEM 'Open' 		ACTION VEN2()
				ITEM 'Save' 		ACTION MsgInfo ('File:Save') IMAGE 'Free.Bmp'  
				ITEM 'Print' 		ACTION MsgInfo ('File:Print') IMAGE 'Info.Bmp'  
				ITEM 'Save As...' 	ACTION MsgInfo ('File:Save As')
				ITEM 'HMG Version' 	ACTION MsgInfo (HMGVersion())
				SEPARATOR
				ITEM 'Exit' 		ACTION MsgInfo ('File:Exit') IMAGE 'Exit.Bmp'

			END POPUP

			POPUP 'Test' 

				ITEM 'Item 1' 		ACTION MsgInfo ('Item 1')  name xxx
				ITEM 'Item 2' 		ACTION MsgInfo ('Item 2')

				POPUP 'Item 3' name test
					ITEM 'Item 3.1' 		ACTION MsgInfo ('Item 3.1') 
					ITEM 'Item 3.2' 		ACTION MsgInfo ('Item 3.2')

					POPUP 'Item 3.3'
						ITEM 'Item 3.3.1' 		ACTION MsgInfo ('Item 3.3.1')
						ITEM 'Item 3.3.2' 		ACTION MsgInfo ('Item 3.3.2')

						POPUP 'Item 3.3.3' 	

							ITEM 'Item 3.3.3.1' 		ACTION MsgInfo ('Item 3.3.3.1')
							ITEM 'Item 3.3.3.2' 		ACTION MsgInfo ('Item 3.3.3.2')
							ITEM 'Item 3.3.3.3' 		ACTION MsgInfo ('Item 3.3.3.3')
							ITEM 'Item 3.3.3.4' 		ACTION MsgInfo ('Item 3.3.3.4')
							ITEM 'Item 3.3.3.5' 		ACTION MsgInfo ('Item 3.3.3.5')
							ITEM 'Item 3.3.3.6' 		ACTION MsgInfo ('Item 3.3.3.6')  

						END POPUP

						ITEM 'Item 3.3.4' 		ACTION MsgInfo ('Item 3.3.4')

					END POPUP

				END POPUP

				ITEM 'Item 4' 		ACTION MsgInfo ('Item 4')

			END POPUP

			POPUP 'Help'

				ITEM 'About' 		ACTION MsgInfo ('Help:ABout')

			END POPUP

		END MENU

		DEFINE CONTEXT MENU
			ITEM 'Item 1' 		ACTION MsgInfo ('Item 1') 
			ITEM 'Item 2' 		ACTION MsgInfo ('Item 2')
			SEPARATOR
			ITEM 'Item 3' 		ACTION MsgInfo ('Item 3')
		END MENU

	END WINDOW

	CENTER WINDOW Form_1

	ACTIVATE WINDOW Form_1

Return


Function Ven2()

	DEFINE WINDOW Form_Main ;
		AT 0,0 ;
		WIDTH 640 HEIGHT 480 ;
		TITLE 'Main Window' ;
		MODAL ;
		ON RELEASE Refres()

		@ 200,250 LABEL Label_1 ;
		WIDTH 150 HEIGHT 40 ;
		VALUE 'Click Me !' ;
		FONT 'Arial' SIZE 24  CENTERALIGN ;
		ACTION MsgInfo('Label Clicked!!!')

		@ 10,10 LABEL Label_2 ;
		AUTOSIZE ;
		VALUE '...' ;
		ACTION msginfo('test')

	END WINDOW

	Form_Main.Label_2.Value := 'Hello All, This Is An AutoSIzable Label!!!'

	CENTER WINDOW Form_Main

	ACTIVATE WINDOW Form_Main

Return 

PROCEDURE REFRES()

/*
	MSGBOX("SALIMOS","ATENCION")
*/
	DEFINE WINDOW Form_SALIR ;
		AT 0,0 ;
		WIDTH 640 HEIGHT 480 ;
		TITLE 'Main Window' ;
		MODAL ;
		ON RELEASE Refres()

		@ 200,250 LABEL Label_1 ;
		WIDTH 150 HEIGHT 40 ;
		VALUE "SALIMOS DE REGRESO" ;
		FONT 'Arial' SIZE 24  CENTERALIGN ;
		ACTION MsgInfo('Label Clicked!!!')

		@ 10,10 LABEL Label_2 ;
		AUTOSIZE ;
		VALUE '...' ;
		ACTION msginfo('test')

	END WINDOW

	Form_SALIR.Label_2.Value := 'ESTO ES UNA PRUEBA'

	CENTER WINDOW Form_SALIR

	ACTIVATE WINDOW Form_SALIR
RETURN

User avatar
srvet_claudio
Posts: 2044
Joined: Thu Feb 25, 2010 8:43 pm
Location: Uruguay
Has thanked: 35 times
Been thanked: 146 times
Contact:

Post by srvet_claudio » Thu Nov 08, 2018 10:39 pm

Las cajas de diálogo de Windows son ventanas modales del sistema.
Best regards.
Dr. Claudio Soto
(from Uruguay)
http://srvet.blogspot.com

User avatar
SALINETAS24
Posts: 200
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 2 times
Been thanked: 5 times

Post by SALINETAS24 » Fri Nov 09, 2018 2:47 pm

Hola Claudio, y gracias.

Pero si son solo Modales .., porque el codigo da error si lo que hace es intentar mostrar una Window modal...?¿
donde esta el fallo.... en la deficion..?

Gracias de nuevo

User avatar
srvet_claudio
Posts: 2044
Joined: Thu Feb 25, 2010 8:43 pm
Location: Uruguay
Has thanked: 35 times
Been thanked: 146 times
Contact:

Post by srvet_claudio » Fri Nov 09, 2018 3:24 pm

SALINETAS24 wrote:
Fri Nov 09, 2018 2:47 pm
Hola Claudio, y gracias.

Pero si son solo Modales .., porque el codigo da error si lo que hace es intentar mostrar una Window modal...?¿
donde esta el fallo.... en la deficion..?

Gracias de nuevo
Excepto por los MessageBox, HMG no utiliza ventanas modales del sistema. Para crear una ventana "Modal" lo que hace HMG es crear una ventana normal y luego inactivar las demas ventanas de la aplicación dando la impresión que la ventana es una ventana modal del sistema.
Best regards.
Dr. Claudio Soto
(from Uruguay)
http://srvet.blogspot.com

User avatar
SALINETAS24
Posts: 200
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 2 times
Been thanked: 5 times

Post by SALINETAS24 » Fri Nov 09, 2018 5:52 pm

Ok, ahora está más claro. Muchas gracias!!

Post Reply