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.

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
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:
Esta función la definimos en el archivo de eventos (events.lua) escribiendo:
Otra forma de enlazar nuestros objetos con los archivos de codigo es con las funciones:
Application.SetPageScript; Page.SetObjectScript y DialogEx.SetObjectScript
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:
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.
Fuente: thedary.tumblr.com
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.

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 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);
function xButton1_onclick(this) then
Dialog.Message("LUA", "Hola mundo desde ".. this);
end
Application.SetPageScript; Page.SetObjectScript y DialogEx.SetObjectScript
Page.SetObjectScript("xButton1", "On Click", "xButton1_onclick(this)" )
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:
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.

Fuente: thedary.tumblr.com