Você pode usar códigos LUA (veja A linguagem de programação LUA) em seus Lua Forms de 2 maneiras:
Mas para usar de forma adequada é importante você saber as características e comportamento do código LUA em um Lua Form.
Um Lua Form pode ser instanciado várias vezes (veja Lua Form e Instâncias), isto é, é perfeitamente possível existir mais de 1 "cópia" de um Lua Form rodando ao mesmo tempo. Seu código deve estar apto a lidar com esta situação!
A variável "self" representa a instância do Lua Form em que o código está executado.
Cada instância do Lua Form possui sua própria "cópia viva" das tags e, se você quiser acessar uma tag/controle via programação, você precisará identificar de qual Lua Form é o controle que deseja ter acesso.
Para identificar um controle do próprio Lua Form, você deve usar "self.".
Em 99% dos casos que precisar acessar as tags via programação, você provavelmente usará "self.".
Exemplo:
<?xml version="1.0" encoding="UTF-8"?> <label name="labMeuLabel" left="20" top="20" text="Meu Texto!" /> <button text="Clique" left="20" top="50" |
Importante: Um erro ocorrerá se tentar acessar uma tag/controle sem usar "self." (ou outra forma de identificar o Lua Form).
Você pode usar a tag script para declarar funções, mas você deve usar o modificador "local" nestas funções para que não haja confusão entre as diversas instâncias do Lua Form.
Não usar o modificador "local" nas declarações de funções causa confusão entre as instâncias do form, já que se trataria de uma função global a todas as instâncias.
Exemplo de declaração:
<?xml version="1.0" encoding="UTF-8"?> <script> showMessage(texto); <button name="btnMeuBotao" text="Meu Botão" onClick="exibirMensagem()"/> |
Você também pode declarar funções ligadas à instância para evitar os mesmos problemas:
<?xml version="1.0" encoding="UTF-8"?> <script> <button onClick="self.exibirMensagem();"/> |
Cada instância de LuaForm pode estar associada a um objeto nodo de um NodeDatabase (ver NodeDatabase e Lua Form e NodeDatabase).
A variável "sheet" contém este objeto nodo associado e você pode usá-lo via programação.
Exemplo de uso:
<?xml version="1.0" encoding="UTF-8"?> <button onClick="sheet.campoDeForca = 8;"/> </form> |
Created with the Personal Edition of HelpNDoc: Streamline your documentation process with HelpNDoc's WinHelp HLP to CHM conversion feature