Page 1 of 1

LOAD WINDOW Vs INCLUDE

Posted: Tue Mar 30, 2021 10:13 pm
by SALINETAS24
Hola a todos.

He estado haciendo alguna prueba con LOAD WINDOW y me surgen unas dudas.

¿hay alguna diferencia entre usar #include "empresa.fmg" o usar Load Window Empresa..?

Si utilizo #INCLUDE lo único que tengo que tener en cuenta es crear en el fichero ".fmg" al inicio una PROCEDURE y terminar con un RETURN, pero el funcionamiento es correcto y ademas me permite compilar con la opcion "inc=yes", con lo que se disminuyen los tiempos de espera. Por el contrario si uso LOAD WINDOW para que asuma una modificación de la pantalla no puedo utilizar "inc=yes" con lo que lo tiempo de espera son laaaarrrgos.

Tampoco veo incremento alguno en el uso de la memoria ni tamaño del exe.

Gracias por la información.



Code: Select all

#include 'hmg.ch'
#include '_dbf.ch'
#include "directry.ch"
#include "empresa.fmg"

PROC EMPRESA
LOCAL aField:={}
LOCAL nCodigo:=1


	// Carga datos
	_PantallaEmpresa()
*	Load Window Empresa
	Center Window Empresa
	Activate Window Empresa

Return


Esto seria el fichero "EMPRESA.FMG"

Code: Select all


PROC _PantallaEmpresa()

DEFINE WINDOW Empresa AT 114,265 ;
     WIDTH 642 HEIGHT 540 TITLE 'Datos Empresa' ;
     MODAL

     @ 85,228 LISTBOX LST_003 WIDTH 172 HEIGHT 26 
     @ 142,39 BUTTON BTT_001 CAPTION 'LOGO1'  WIDTH 70 HEIGHT 25 
     @ 288,38 BUTTON BTT_002 CAPTION 'LOGO2'  WIDTH 70 HEIGHT 25 
     @ 140,140 LABEL SAY_023 VALUE 'LOGO GRANDE'  WIDTH 253 HEIGHT 29 ;
          TRANSPARENT FONT cFont1 SIZE nSize1
     @ 289,138 LABEL SAY_024 VALUE 'LOGO PEQUEÑO'  WIDTH 259 HEIGHT 24 ;
          TRANSPARENT FONT cFont1 SIZE nSize1

END WINDOW

RETURN 


Re: LOAD WINDOW Vs INCLUDE

Posted: Tue Mar 30, 2021 10:43 pm
by salamandra
Hola @SALINETAS24,
SALINETAS24 wrote: Tue Mar 30, 2021 10:13 pm Hola a todos.

He estado haciendo alguna prueba con LOAD WINDOW y me surgen unas dudas.

¿hay alguna diferencia entre usar #include "empresa.fmg" o usar Load Window Empresa..?

Si utilizo #INCLUDE lo único que tengo que tener en cuenta es crear en el fichero ".fmg" al inicio una PROCEDURE y terminar con un RETURN, pero el funcionamiento es correcto y ademas me permite compilar con la opcion "inc=yes", con lo que se disminuyen los tiempos de espera. Por el contrario si uso LOAD WINDOW para que asuma una modificación de la pantalla no puedo utilizar "inc=yes" con lo que lo tiempo de espera son laaaarrrgos.

Tampoco veo incremento alguno en el uso de la memoria ni tamaño del exe.

Gracias por la información.
Realmente hace mucho tiempo que dejé de crear forms dentro del programa, demora mucho y no es para nada WYSIWYG. Me resulta muchisimo mas rápido y práctico crearlos en el IDE y despues declararlos en el inicio del programa.
Por ejemplo:

** Programa teste.prg

Code: Select all

#Include "HMG.CH"

DECLARE WINDOW TEST22

// -------------------------------------------------------------------
Function Main()

LOAD WINDOW TEST22

CENTER WINDOW TEST22
ACTIVATE WINDOW TEST22

Return Nil
En relación a la compilacion incremental, yo particulamente no tengo ningun problema pues uso QPM (https://teamqpm.github.io/) para gerenciar mis projectos, lo que me permite compilar rapidamente de forma Incremental o forzar el modo No-Incremental.



Saludos,


Salamandra, Brazil