FMG Editor

Utilities like DBU, Make, IDE written in HMG/ used to create HMG based applications

Moderator: Rathinagiri

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:

Re: FMG Editor

Post by srvet_claudio » Wed May 07, 2014 8:19 pm

Pablo César wrote:No sabemos si este aplicativo irá ser incorporado al IDE. Pero como vos mismo mencionaste, es un complemento a ciertas deficiencias. Pero todavia es un aplicativo independiente. Tendrá que mostrar estabilidad, compatibilidad, es decir, confianza para que algo pueda ser agregado al IDE. Yo pienso, que nada impide crear un botón asi como "Build Log" que fué adicionado a la actual version de IDE.
Lo mas difícil en cualquier interprete (lenguaje o IDE) es leer, interpretar adecuadamente y cargar el código fuente (.fmg, .prg, etc.), pero como eso es hecho por Harbour en FMG_Editor, crear un nuevo IDE a tu medida es en teoría bastante sencillo.
En vez de generar el .prg con Harbour como lo hace FMG_Editor basta crea una plantilla para cada control con las definiciones de las propiedades y métodos, escaner _HMG_SYSDATA para obtener esos datos, completar la plantilla con los datos y escribirla mediante HB_MemoWrite en formato de un archivo .fmg
Best regards.
Dr. Claudio Soto
(from Uruguay)
http://srvet.blogspot.com

Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México
Has thanked: 1 time
Been thanked: 2 times

Post by Javier Tovar » Wed May 07, 2014 8:41 pm

srvet_claudio wrote:Lo mas difícil en cualquier interprete (lenguaje o IDE) es leer, interpretar adecuadamente y cargar el código fuente (.fmg, .prg, etc.), pero como eso es hecho por Harbour en FMG_Editor, crear un nuevo IDE a tu medida es en teoría bastante sencillo.
En vez de generar el .prg con Harbour como lo hace FMG_Editor basta crea una plantilla para cada control con las definiciones de las propiedades y métodos, escaner _HMG_SYSDATA para obtener esos datos, completar la plantilla con los datos y escribirla mediante HB_MemoWrite en formato de un archivo .fmg
+1


P.D.: Yo no se como hacerlo pero "Seria mejor!!!"

User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil
Has thanked: 100 times
Been thanked: 182 times

Post by Pablo César » Wed May 07, 2014 8:57 pm

srvet_claudio wrote:En vez de generar el .prg con Harbour como lo hace FMG_Editor basta crea una plantilla para cada control con las definiciones de las propiedades y métodos, escaner _HMG_SYSDATA para obtener esos datos, completar la plantilla con los datos y escribirla mediante HB_MemoWrite en formato de un archivo .fmg
No entiendo lo que es plantilla. Pero me parece que no entendieron bien lo que el aplicativo hace. Es justamente lo mismo que estás proponiendo. Primero tengo que interpretar los "comandos" que hay en el archivo fmg para poder alimentar _HMG_SYSDATA. Y eso, creo que ya está casi terminado. pero no entendi cuando mencionaste que mi aplicativo genera un PRG. En verdad, no precisa generar ningun PRG a no ser en la memória para poder interpetar/traducir los comandos del archivo fmg. Admito, que en el aplicativo tiene esta opcion, pero la utilizo para generar prgs, cuando ocurre errores en la ejecucion. De esta forma, poderá analizar el código y ver donde poderia estar el error. Pero esto es opcional. Como se trata de un aplicativo para desenvolvedores, creo que el mejor lenguaje es lo que dicen los PRGs. Pero en su esencia, no precisaria generar ningun archivo, a no ser el resultado final para fmg.
srvet_claudio wrote:... pero como eso es hecho por Harbour en FMG_Editor, crear un nuevo IDE a tu medida es en teoría bastante sencillo.
Mi intencion no es crear una IDE. Pensé en que pudiera ser diponibilizado esta herramienta complementar atravéz de un nuevo botón en la própia IDE del HMG. Un botón que llama otra herramienta. :roll:

Ahora estoy enfrentando la dificultad de guardar las acciones de cada componente. Pero lo que passa que en el _HMG_SYSDATA están como codeblock y no como string. Es decir, no consigo concatenar esa informacion cuando lo necesite para re-generar el archivo fmg. Te mandé Claudio, un MP porque todo esto es dificil de traducir, toma demasiado tiempo y preciso agilizarme. No que tenga prizas, sinó que no me gusta perder tiempo con algo que lo puedo utilizar para desenvolvimiento. Lo máximo que puedo hacer, es traducir todo lo que escribi en español, pero eso cuando tenga tiempo libre. Tambien veo que mismo que escriba en inglés, muy pocos se interesan en responder o a participar. Entonces, todo eso de traducir me parece una verdadera pérdida de tiempo. Espero que ahora no me hinchen las b... con esos detalles. Yo pido disculpas, aquellos que no consiguen 100% de traduccion, pero yo preciso avanzar... o lo hago participando (como puedo) o lo hago todo calladito... :( (este es mi point-of-view), disculpen todos.
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein

User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil
Has thanked: 100 times
Been thanked: 182 times

Post by Pablo César » Wed May 07, 2014 9:32 pm

Pablo César wrote:Ahora estoy enfrentando la dificultad de guardar las acciones de cada componente. Pero lo que passa que en el _HMG_SYSDATA están como codeblock y no como string. Es decir, no consigo concatenar esa informacion cuando lo necesite para re-generar el archivo fmg.
CONSEGUI !!!!! Estoy contento ! :D
Pablo César wrote:Te mandé Claudio, un MP porque todo esto
Claudio, considerá el mensaje, sin efecto. Una cosa a menos para vos. :oops:

Muy simples mi ingenio. Como habia dicho antes, traté todas las acciones como string dejando las funciones que fueron puestas en el fmg entre comillas. Lo habia sacado para testear otras formas, pero retorné la rutina y como al invés de ser funciones yo las habias transformado en string, obtube através del EVAL() de nuevo el contenido del block en forma de string. :D

Code: Select all

Function Ins_My_Trigger(xVal)
Local cNewCmd := {|| My_Trigger()}, cVal

If HMG_Len(hb_ValToExp(xVal)) > 8  //  {|| NIL}
   MsgDebug(Eval(xVal))
Endif
Return cNewCmd // New assign of action
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein

User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil
Has thanked: 100 times
Been thanked: 182 times

Post by Pablo César » Sat May 10, 2014 7:45 am

I having more ideas. More two opcion in Main Menu:

- Coordinates, usefull to align, to see positions.
- Zoom, good to get color in background screens.

I have finished two buttons images and improved Move_Form one.

Thanks to all of you are helping me in this project.
Attachments
Screen1.PNG
Screen1.PNG (120.24 KiB) Viewed 2043 times
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein

Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México
Has thanked: 1 time
Been thanked: 2 times

Post by Javier Tovar » Sat May 10, 2014 4:24 pm

Muy bien Pablo César, no te importaría su subieras el editor hasta donde lo tienes ahorita desarrollado?

Saludos

User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil
Has thanked: 100 times
Been thanked: 182 times

Post by Pablo César » Sun May 11, 2014 4:09 am

Como habia mencionado, pretendo disponibilizar este recurso en el FMG_Editor a disponibilidad de un boton. El FMG_Editor, tiene una parte con fondo griz y cuando el app no está con ningun FMG cargado, ese fondo griz lo paso para transparente. Cuando hay un formulario cargado, no lo hago transparente. Dejo la vision del form y utilizo las coordenadas para ver posicion. Porqué quiero hacer de esta forma: una hora con fondo transparente otra no ? Es porque el FMG_Editor, puede ser utili tambien para ver lo que hay en el desktop, o mejor dicho atrás dél. Esto es util para ver posiciones hasta tamaños de componentes o window de otros aplicativos que uno quiera hacerlo igual, digamos.
Tela1.PNG
Tela1.PNG (58.67 KiB) Viewed 2003 times
Abajo de la ventana del FMG_Editor, está el IDE y el Notepad++ abiertos, fijate en el código que hice como me sugeriste:
Tela2.PNG
Tela2.PNG (109.3 KiB) Viewed 2003 times
El boton en el FMG_Editor, está disponibilizado y si lo clicas sin ningun fmg cargado, vas a ver esta pantalla:
Tela3.PNG
Tela3.PNG (118.66 KiB) Viewed 2003 times
Verás en el topo, bien arriba de todo, está el title del form del Coords. Es lo único que será visto (por encuanto) y fiajte que las ventanas del IDE y del Notepad no hicieron foco todavia. Por lo tanto el Coords está en foco y puede ser presionado ESC para salir del Coords.
Pero si clicar en la ventana del Notepad++, este tomará foco. Para mi punto de vista, esto no deberia suceder, ya que la ventana del Coords es MODAL, pero mismo asi pierde el TOPMOST y por consecuente, el usuario no puede salir al presionar ESC, es decir se pierden... :(
Tela4.PNG
Tela4.PNG (125.79 KiB) Viewed 2003 times
Fijate que en esta pantalla está claro que el Notepad++ tomó foco y el ESC del Coords, no puede funcionar...

Ahora si cargas un fmg y llamas el Coords, no haberá problema alguno. Porque el aplicativo no irá hacer transparencia del color griz cuando un formulario está cargado.

No sé, si ahor ame hice entender, me tomé el trabajo de explicarte este comportamiento, que no es normal para los casos de MODAL. Solo no sé si es comportamiento normal para lso casos de TRANSPARENCIAS. De esta forma, te hé demostrado lo que yo considero como falla. Intenté hacer un video, hice otro y otro tercero, pero increiblemente, no me aparece el form principal... espero que estas figuras ayuden a entender mejor.

Por otro lado, de tanto renegar con esto. Si el problema está en hacer transparencia el fond griz (fijate que no es toda la pantalla, si parte de ella). Entonces se me ocurrió otra idea. Al invés de poner transparente el form principal del FMG_Editor, iré emplear el método de capturar la pantalla anterior e cargarla encima del fondo griz. Eso, irá parecer que está focando para la pantalla anterior al FMG_Editor. Pero tengo una duda, que poderá ser un problema. Tengo que acertar en la posicion de la imagen con respecto a mi área libre (mi area griz). Puede no coincidir, acepto indicacion.

Y en la peor hipótesis, no hago transparencia alguna del main form...

Ya estoy disponibilizando el próximo release del FMG_Editor en el próximo mensaje, para que puedas testear lo que acabé de describir.

Gracias, Claudio por tu habitual atencion.

Un gran abrazo.
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein

User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil
Has thanked: 100 times
Been thanked: 182 times

Post by Pablo César » Sun May 11, 2014 4:27 am

In this version I did not made much things, because I was with problems with CodeBlocks, but now I believe it is ok.

I also got to add the Coords of our coleague Meneale, very usefull to check positions on the screen.

I also got succesfully all compoments be focused and in this way to call MY_Trigger() function, which will be usefull to call what I want in place of existing functions in the fmg file. For example clicking a MonthCalendar and it will be selected.

MonthCalendar, has not GOTFOFUS... was a bit different... but I got it ! :)

I also got to keep stored into an array, all the functions which are connected with all ACTIONS, like as GOTFOCUS, ONENTER, so on... This will usefull when fmg file will be rewritten by the app.

Nobody give me any advise, any suggestions about size of ComboBox when it be selected. :(

Image
For anyone who is kind enough to give your opinion: (Read this message)

I also improved the mouse POINTER when form/window is moving.

In the next, I shall include the GetColor function.

I hope you enjoy ! :D

<Attached files was removed. Please see last message with updated files.>
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein

Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México
Has thanked: 1 time
Been thanked: 2 times

Post by Javier Tovar » Sun May 11, 2014 5:22 pm

Hola Pablo César,

Yo creo que debe de ser la primera, ya que siempre se ha trabajado así. Screen 1 :D

Saludos y gracias por tu trabajo :D
Last edited by Javier Tovar on Sun May 11, 2014 5:33 pm, edited 1 time in total.

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 » Sun May 11, 2014 5:28 pm

Pablo espero que te sea útil.
Attachments
FMG_Editor.rar
(14.32 KiB) Downloaded 122 times
Best regards.
Dr. Claudio Soto
(from Uruguay)
http://srvet.blogspot.com

Post Reply