Hola, hay alguna forma de que una ventana redibuje todos los LABEL, TEXTLABEL, ETC., ETC.. todos de una sola tadaca..
Gracias.
WINDOW - REDIBUJAR TODOS LOS CONTROLES
Moderator: Rathinagiri
- SALINETAS24
- Posts: 667
- Joined: Tue Feb 27, 2018 3:06 am
- DBs Used: DBF
- Contact:
WINDOW - REDIBUJAR TODOS LOS CONTROLES
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no.
- mustafa
- Posts: 1160
- Joined: Fri Mar 20, 2009 11:38 am
- DBs Used: DBF
- Location: Alicante - Spain
- Contact:
Re: WINDOW - REDIBUJAR TODOS LOS CONTROLES
Hola Nanu !
Mira haber si te puede servir esto ?
c:\hmg.3.4.4\Samples\Controls\MenuContext\MENU_ControlContext_1
c:\hmg.3.4.4\Samples\Controls\DATA_BOUND\
Una Abraça
Mustafa
Mira haber si te puede servir esto ?
c:\hmg.3.4.4\Samples\Controls\MenuContext\MENU_ControlContext_1
c:\hmg.3.4.4\Samples\Controls\DATA_BOUND\
Una Abraça
Mustafa
- SALINETAS24
- Posts: 667
- Joined: Tue Feb 27, 2018 3:06 am
- DBs Used: DBF
- Contact:
Re: WINDOW - REDIBUJAR TODOS LOS CONTROLES
Hola Mustafa.., gracies per contestar, eres una máquina!!
Quizás mi petición fue algo abstracta. Verás.., donde tengo el bloqueo es en el MENU de la CONTABILIDAD. En esta aplicación (la primera que estoy recreando de mi antiguo CLIPPER), el usuario puede elegir el IDIOMA. Cuando arranca el PROGRAMA lee en un fichero de MISCELANEA el idioma que el usuario tiene predefinido. Con el 1-Castellano, 2-Valençia,3-Inglés (de Google), 4- Francés (de Google también). Se carga una variable (tipo array unidimensional) con el idioma y se visualiza sin ningún problema. Pero si decidimos cambiar de idioma, (a través de una opción del MENU), puedo modificar todos los TÍTULOS menos los DEFINE POPUP y los MENUITEM del MENU. No he encontrado una clausula Refresh para MENU ni para la WINDOW. Para que el cambio surta efecto el usuario tiene que salir del PROGRAMA y volver a entrar.
El código es muy simple, como te he dicho es una variable tipo array donde cargo el idioma. La condición la tengo solo por control.
Es asi..
Pdría displayar la opción directamente, sin condición
Mientras estoy escribiendo esto, estoy pensando que una buen solución sería hacer un RELEASE y volver a definir el MENU.......
Creo que ya hicimos algo parecido con las multiventanas.., lo probaré a nos ser que tengamos alguna otra opción.., ya te contaré.
Quizás mi petición fue algo abstracta. Verás.., donde tengo el bloqueo es en el MENU de la CONTABILIDAD. En esta aplicación (la primera que estoy recreando de mi antiguo CLIPPER), el usuario puede elegir el IDIOMA. Cuando arranca el PROGRAMA lee en un fichero de MISCELANEA el idioma que el usuario tiene predefinido. Con el 1-Castellano, 2-Valençia,3-Inglés (de Google), 4- Francés (de Google también). Se carga una variable (tipo array unidimensional) con el idioma y se visualiza sin ningún problema. Pero si decidimos cambiar de idioma, (a través de una opción del MENU), puedo modificar todos los TÍTULOS menos los DEFINE POPUP y los MENUITEM del MENU. No he encontrado una clausula Refresh para MENU ni para la WINDOW. Para que el cambio surta efecto el usuario tiene que salir del PROGRAMA y volver a entrar.
El código es muy simple, como te he dicho es una variable tipo array donde cargo el idioma. La condición la tengo solo por control.
Es asi..
Code: Select all
DEFINE MAIN MENU
DEFINE POPUP IF(nIdioma=1,'&FICHEROS',aMnx[1])
MENUITEM IF(nIdioma=1," &0.Empresas"," &0."+aMnx[7]) ACTION (_CONMAEM(nYear,cDir,aConfig), Activa_xEmp(nYear,@xEmp,cDir,aConfig));
IMAGE "EMPRESA_P" TOOLTIP "Datos generales de la empresa"
MENUITEM IF(nIdioma=1," &1.Conceptos"," &1."+aMnx[8]) IMAGE "notas_p" ACTION _CONMACO(xEmp,aConfig) TOOLTIP "Crea los Conceptos Contables"
MENUITEM IF(nIdioma=1," &2.Plan Contable"," &2."+aMnx[9]) IMAGE "cuenta_p" ACTION _CONMACU(xEmp,aConfig) TOOLTIP "Crea las cuentas del Plan Contable"
MENUITEM IF(nIdioma=1," &3.Asientos"," &3."+aMnx[10]) IMAGE "editar_p" ACTION _CONMAAS(xEmp, nYear, aConfig) TOOLTIP "Crea los apuntes contables"
SEPARATOR
Code: Select all
DEFINE MAIN MENU
DEFINE POPUP aMnx[1]
MENUITEM aMnx[7] ACTION (_CONMAEM(nYear,cDir,aConfig), Activa_xEmp(nYear,@xEmp,cDir,aConfig));
IMAGE "EMPRESA_P" TOOLTIP "Datos generales de la empresa"
MENUITEM aMnx[8] IMAGE "notas_p" ACTION _CONMACO(xEmp,aConfig) TOOLTIP "Crea los Conceptos Contables"
MENUITEM aMnx[9] IMAGE "cuenta_p" ACTION _CONMACU(xEmp,aConfig) TOOLTIP "Crea las cuentas del Plan Contable"
MENUITEM aMnx[10] IMAGE "editar_p" ACTION _CONMAAS(xEmp, nYear, aConfig) TOOLTIP "Crea los apuntes contables"
SEPARATOR
Creo que ya hicimos algo parecido con las multiventanas.., lo probaré a nos ser que tengamos alguna otra opción.., ya te contaré.
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no.
- SALINETAS24
- Posts: 667
- Joined: Tue Feb 27, 2018 3:06 am
- DBs Used: DBF
- Contact:
Re: WINDOW - REDIBUJAR TODOS LOS CONTROLES
Hola amic, ya he estado probando y he visto una cosa muy rara que no termino de entender.
Imagínate un programa.., defino unas variables.., realizo unos cálculos.., PRESENTO LA WINDOW MAIN.., el usuario introduce una serie de datos, hago el release...., pero tengo que seguir con el programa..., necesito realizar unos cálculos. PUES NO.., en cuanto hago el RELEASE me cierra el PRG y me devuelve al sistema.
Acaso la ventana MAIN toma el control absoluto y cuando la cierras .., se acabo. Una vez activada la MAIN ya no se puede desactivar..??
Tal y como te comente antes, había pensado en hacerle un RELEASE a la MAIN para redefirnirla después pero no me deja.... Sigo con las pruebas.
Salud i una serveseta fresqueta amic!!!
Imagínate un programa.., defino unas variables.., realizo unos cálculos.., PRESENTO LA WINDOW MAIN.., el usuario introduce una serie de datos, hago el release...., pero tengo que seguir con el programa..., necesito realizar unos cálculos. PUES NO.., en cuanto hago el RELEASE me cierra el PRG y me devuelve al sistema.
Acaso la ventana MAIN toma el control absoluto y cuando la cierras .., se acabo. Una vez activada la MAIN ya no se puede desactivar..??
Tal y como te comente antes, había pensado en hacerle un RELEASE a la MAIN para redefirnirla después pero no me deja.... Sigo con las pruebas.
Salud i una serveseta fresqueta amic!!!
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no.
- SALINETAS24
- Posts: 667
- Joined: Tue Feb 27, 2018 3:06 am
- DBs Used: DBF
- Contact:
Re: WINDOW - REDIBUJAR TODOS LOS CONTROLES
Hola otra vez. Tal y como he comentado antes, cuando cerramos una WINDOW de tipo MAIN, en las fuentes de HMG hay un .PRG llamado "h_Windows.prg" que se encarga de gestionar las ventanas y demás controles. Pues ahí se ejecuta la función ExitProcess(0) dentro del procedimiento ReleaseAllWindows (). Esa es la que hace terminar el programa, si la eliminamos (poniéndole un "*" delante), conseguimos que cuando cerremos la WINDOW MAIN no nos tire al sistema y podamos seguir con el programa.
He conseguido quedarme dentro del programa, pero si intento cargar otra vez la WINDOW MAIN, me dice "-ACTIVATE WINDOW: Main Window Already Active. Program Terminated". No consigo eliminarla, hacerle un RELEASE COMPLETO, al igual que se hace en una ventana tipo MODAL.
Si se pudiese hacer sería una buena forma de hacer un REFRESH a toda un WINDOW MAIN.
Quizás alguien que domine mejor esta libreria y el "c" me pueda orientar.
Muchas gracias a todos y unas cervecitas fresquitas!!
He conseguido quedarme dentro del programa, pero si intento cargar otra vez la WINDOW MAIN, me dice "-ACTIVATE WINDOW: Main Window Already Active. Program Terminated". No consigo eliminarla, hacerle un RELEASE COMPLETO, al igual que se hace en una ventana tipo MODAL.
Si se pudiese hacer sería una buena forma de hacer un REFRESH a toda un WINDOW MAIN.
Quizás alguien que domine mejor esta libreria y el "c" me pueda orientar.
Muchas gracias a todos y unas cervecitas fresquitas!!
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no.
- SALINETAS24
- Posts: 667
- Joined: Tue Feb 27, 2018 3:06 am
- DBs Used: DBF
- Contact:
Re: WINDOW - REDIBUJAR TODOS LOS CONTROLES
Che, Mustafa.., estic mes tonto que una carabasa.., recontracollons. Tens tota la rao., tenia els eixamples i no els veia. Moltes gracias com sempre amic.
No obstante sería interesante que los creadores de HMG valorasen la posiblidad de que una RELEASE sobre la WINDOW MAIN no cerrase de manera obligatoria el PROGRAMA, estaría bien que se eliminasen los controles (al igual que se hace en una modal) y que se pudiese seguir trabajando.
Un abrazo.
No obstante sería interesante que los creadores de HMG valorasen la posiblidad de que una RELEASE sobre la WINDOW MAIN no cerrase de manera obligatoria el PROGRAMA, estaría bien que se eliminasen los controles (al igual que se hace en una modal) y que se pudiese seguir trabajando.
Un abrazo.
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no.
- mustafa
- Posts: 1160
- Joined: Fri Mar 20, 2009 11:38 am
- DBs Used: DBF
- Location: Alicante - Spain
- Contact:
Re: WINDOW - REDIBUJAR TODOS LOS CONTROLES
Hola amigo
Rebuscando por la Web he encontrado un trabajo magnifico del Dr.Soto Puzzle_ML , que tiene un menú automático
de cambio de idioma Originalmente viene en Español, Ingles y Portugues
http://www.hmgforum.com/viewtopic.php?f ... menu#p8877
He borrado unas cuantas lineas del código haber si se podía conseguir lo del tema Menú Idiomas y parece que funciona
A lo mejor te puede Servir ? lo malo es que hay que configurar todos los menús en los Idiomas que tengamos que trabajar
El Código de página para el Valenciano le he puesto el de Francés por compatible con los acentos.
Ya me contaras ? Salud !
Mustafa
Rebuscando por la Web he encontrado un trabajo magnifico del Dr.Soto Puzzle_ML , que tiene un menú automático
de cambio de idioma Originalmente viene en Español, Ingles y Portugues
http://www.hmgforum.com/viewtopic.php?f ... menu#p8877
He borrado unas cuantas lineas del código haber si se podía conseguir lo del tema Menú Idiomas y parece que funciona
A lo mejor te puede Servir ? lo malo es que hay que configurar todos los menús en los Idiomas que tengamos que trabajar
El Código de página para el Valenciano le he puesto el de Francés por compatible con los acentos.
Ya me contaras ? Salud !
Mustafa
- Attachments
-
- Sample.zip
- (4.13 KiB) Downloaded 198 times
- SALINETAS24
- Posts: 667
- Joined: Tue Feb 27, 2018 3:06 am
- DBs Used: DBF
- Contact:
Re: WINDOW - REDIBUJAR TODOS LOS CONTROLES
Muchas gracias Mustafa, muy buena rutina y muy buen trabajo.
Al final lo he hecho como el ejemplo que me indicaste al principio
c:\hmg.3.4.4\Samples\Controls\MenuContext\MENU_ControlContext_1
c:\hmg.3.4.4\Samples\Controls\DATA_BOUND\
Lo único que me tiene un poco preocupado es el tema de la recursividad, ya que llamo a la propia rutina desde la misma rutina.... La opción que cambia el Lenguaje esta dentro del menú..., no se.., igual un dia explota. jajajaja.
Che...!, i una altra cosa..., No sabia jo que en el Xinorlet també es programaba. Bona xent i bon vi..., "Una serveseta pal rateret"
Yo en lugar de una MATRIZ multidimensional, estoy usando una matriz simple y cargo los títulos, opciones, mensajes, leyendas, etc de un fichero binario que abro utilizando FOPEN, FREAD, etc. Así lo tenia en Clipper y así lo tengo ahora, de esta forma solo cargo el idioma que quiero.
Lo que todavía no he modificado es
SET CODEPAGE TO ENGLISH
SET LANGUAGE TO ENGLISH
Me da pereza de momento..., jajajaja
Un saludo,
Al final lo he hecho como el ejemplo que me indicaste al principio
c:\hmg.3.4.4\Samples\Controls\MenuContext\MENU_ControlContext_1
c:\hmg.3.4.4\Samples\Controls\DATA_BOUND\
Lo único que me tiene un poco preocupado es el tema de la recursividad, ya que llamo a la propia rutina desde la misma rutina.... La opción que cambia el Lenguaje esta dentro del menú..., no se.., igual un dia explota. jajajaja.
Che...!, i una altra cosa..., No sabia jo que en el Xinorlet també es programaba. Bona xent i bon vi..., "Una serveseta pal rateret"
Yo en lugar de una MATRIZ multidimensional, estoy usando una matriz simple y cargo los títulos, opciones, mensajes, leyendas, etc de un fichero binario que abro utilizando FOPEN, FREAD, etc. Así lo tenia en Clipper y así lo tengo ahora, de esta forma solo cargo el idioma que quiero.
Lo que todavía no he modificado es
SET CODEPAGE TO ENGLISH
SET LANGUAGE TO ENGLISH
Me da pereza de momento..., jajajaja
Un saludo,
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no.