Página 1 de 1

Programando en serio con AMS

Publicado: 13 Feb 2014 22:11
por Thedary
Hola, el titulo de este post solo está pretendiendo enseñar mejores practicas a la hora de hacer aplicaciones. Por supuesto lo digo desde mi relativa opinión.

Antes que nada me gusta LUA por estar tan integrado con C, es libre, multiplataforma y "sencillo". Como algunos sabrán me gusta utilizar AMS como ayuda a la hora de escribir algo en LUA para Windows porque es fácil construir la interfaz, simplemente por comodidad ante otras alternativas como iup o wxlua. Cualquiera que se haya topado con este software se podrá dar cuenta que no es muy cómodo tener que estar dando click a cada botón siempre que quiera modificar un codigo.

Imagen

Ahora un mini tutorial de lo que hago para poder programar con AMS desde mi IDE preferido Sublime Text.

Lo principal es separar nuestro código en archivos fuente como lo haria cualquier persona normal en vez de tenerlo todo metido en un archivo XML como nos propone AMS.

A mi me gusta hacerlo de la siguiente forma:
main.lua - En este archivo estará lo que se ejecuta al inicio de la aplicación
events.lua - Desde este archivo llamaremos los eventos de cada objeto (xButton, Label, Image, etc.)

Dentro de AMS, en Global Functions importamos nuestros archivos fuente
require "main"
require "events"
Ahora podemos empezar a agregar codigo desde nuestro editor de codigo favorito y no tenemos que hacer "Build" desde autoplay cada que hagamos un cambio, simplemente abrir el ejecutable y listo.

Ahora necesitamos ejecutar cosas con los botones, imagenes y demás objetos. Para esto hacemos lo siguiente:

Por ejemplo tenemos nuestro objeto "xButton1" en el evento OnClick, ponemos esto:
xButton1_onclick(this);
Esta función la definimos en el archivo de eventos (events.lua) escribiendo:
function xButton1_onclick(this) then
	Dialog.Message("LUA", "Hola mundo desde ".. this);
end
Otra forma de enlazar nuestros objetos con los archivos de codigo es con las funciones:
Application.SetPageScript; Page.SetObjectScript y DialogEx.SetObjectScript
Page.SetObjectScript("xButton1", "On Click",  "xButton1_onclick(this)" )
Y esto lo hacemos con cada objeto, cada evento, cada pagina que necesitemos. Una vez hecho esto podremos empezar a depender menos de AMS y utilizar LUA cada vez mas.

El archivo main.lua nos servirá para definir funciones globales, variables ejecutar procesos al inicio de la aplicación, importar otros módulos o lo que sea que se nos ocurra.

Aqui dejo la apz para que vean como funciona:
HIDE: ON
Hidebb Message Hidden Description


Este método es muy util, pueden organizar sus aplicaciones y escribir cada apartado (modulo) en un archivo diferente y hacer cosas bastante buenas, yo por ejemplo llevo el control de mis proyectos con git y con este metodo si que es más fácil cambiar entre versiones. Pero eso será en otro post. Imagen

Fuente: thedary.tumblr.com

Publicado: 13 Feb 2014 22:17
por rafaxplayer
:yeah: :yeah: :yeah: muy buenos ticks para lua/ams , la programación por modulos en lua es el sistema ,aunque ams esta pensado para darlo todo masticado a un coste muy grande pero bueno....

Un saludo.

Publicado: 14 Feb 2014 06:37
por Cirseven
Buena forma de mantener un proyecto en orden claro si el proyecto en código es grande :ohyeah:

Publicado: 14 Feb 2014 13:47
por Pabloko
es mas sencillo si te vas a

C:\Program Files (x86)\AutoPlay Media Studio 8\Data\Includes

o como este en tu pc, y editas _error_messages.lua

ese archivo se incrusta en cualquier proyecto generado con ams por lo que si ya le inyectas ahi las referencias a tus archivos e incluso algun enumerador de eventos de objetos con page.getobjects puedes hacer toda la interfaz con pcall y luego definir solo las funciones que necesites.

Publicado: 14 Feb 2014 15:47
por tam
thanks

Re:

Publicado: 15 Feb 2014 09:13
por Cirseven
Pabloko escribió:es mas sencillo si te vas a

C:\Program Files (x86)\AutoPlay Media Studio 8\Data\Includes

o como este en tu pc, y editas _error_messages.lua

ese archivo se incrusta en cualquier proyecto generado con ams por lo que si ya le inyectas ahi las referencias a tus archivos e incluso algun enumerador de eventos de objetos con page.getobjects puedes hacer toda la interfaz con pcall y luego definir solo las funciones que necesites.
Gracias, ni idea que existía ese directorio :pc:

Publicado: 15 Feb 2014 10:50
por rafaxplayer
yo lo usaba para definir funciones globales que podía utilizar en mis proyectos después.

Re:

Publicado: 18 Feb 2014 23:27
por Thedary
Pabloko escribió:es mas sencillo si te vas a

C:\Program Files (x86)\AutoPlay Media Studio 8\Data\Includes

o como este en tu pc, y editas _error_messages.lua

ese archivo se incrusta en cualquier proyecto generado con ams por lo que si ya le inyectas ahi las referencias a tus archivos e incluso algun enumerador de eventos de objetos con page.getobjects puedes hacer toda la interfaz con pcall y luego definir solo las funciones que necesites.
El page.getobject lo uso para definir el lenguaje de la aplicación pero nunca se me ocurrio hacer lo que dices con ese archivo. A ver que se me ocurre.

Gracias

Publicado: 06 Mar 2014 14:38
por abood1987
Gracias

Publicado: 29 Ago 2014 23:15
por spermanbsb
excelente aporte

Re: Programando en serio con AMS

Publicado: 24 Oct 2014 15:28
por spermanbsb
muy bueno bro

Re: Programando en serio con AMS

Publicado: 14 Sep 2015 18:08
por a.miguel30
gracias

Re: Programando en serio con AMS

Publicado: 07 Jun 2016 02:49
por Y2K38
:lol: :lol: :lol: :lol: :lol: :lol:

Re: Programando en serio con AMS

Publicado: 09 Sep 2016 05:06
por wandersonnegocios
gracias

Re: Programando en serio con AMS

Publicado: 03 Dic 2016 14:01
por ByPoLaT
thanks

Re: Programando en serio con AMS

Publicado: 09 Sep 2017 21:40
por oussemaTN
thanksssssss

Re: Programando en serio con AMS

Publicado: 25 Ene 2018 17:54
por good
gracias

Re: Programando en serio con AMS

Publicado: 13 Sep 2019 14:50
por Cristian Veliz M.
Gracias

Re: Programando en serio con AMS

Publicado: 01 Oct 2019 07:20
por THEBEST1
thank you